我正在尝试在我的asp.net mvc中使用Channel Factory并将其缓存起来。 我使用了PerSession实例模式,因为我需要知道状态。 由于这个原因,我不能立即关闭代理。而且我不想每次都重新打开和关闭代理。 如果我保持代理开启,它会在第12次超时。我可以增加并发会话超时时间,但我想知道这是否是正确的方法。 我对WCF很新,所以请原谅我的愚蠢问题。 -提前感谢 普拉特
我正在尝试在我的asp.net mvc中使用Channel Factory并将其缓存起来。 我使用了PerSession实例模式,因为我需要知道状态。 由于这个原因,我不能立即关闭代理。而且我不想每次都重新打开和关闭代理。 如果我保持代理开启,它会在第12次超时。我可以增加并发会话超时时间,但我想知道这是否是正确的方法。 我对WCF很新,所以请原谅我的愚蠢问题。 -提前感谢 普拉特
答案可能是在表单身份验证元素中激活slidingExpiration属性,尽管默认情况下已经打开。通过这种方式,在每次调用后,计时器将重置为超时值,因此会话在使用时保持活动状态。
请参见MSDN链接:Forms Authentication & slidingExpiration property
编辑-回复评论:
是的,当会话超时时,您需要重新进行身份验证才能再次访问服务。您应该将超时值设置为您认为用户不再活动的时间(以分钟为单位)的长度(默认为30分钟),然后滑动过期将重置此值,如果用户继续调用。我建议您尝试使用超时设置为1分钟的不同场景进行一些简单的测试,以证明其可行性。