我正在使用asp .NET MVC应用程序,我已经配置了
<system.web><sessionState mode="InProc" timeout="90" /></system.web>但是看起来会话仍然有效,只有20分钟,而不是90分钟,为什么?
我怎样才能使它比20更有效(我想是默认的)
我检查了应用程序池中的空闲时间,它是20,这是超时的原因吗?如果是,我如何从配置文件中重写此文件?
发布于 2015-10-26 09:28:03
因为IIS重新启动池(包括会话),每个x分钟都没有活动,配置为池本身设置中的空闲超时,如果用户在应用程序中设置了90分钟会话,如果没有活动,IIS可以在这90分钟结束之前重新启动池。示例:
会话是60分钟后在app.config中配置30分钟空闲,池本身只循环一个人使用该应用程序。
下午1:00:用户连接,他在10分钟内导航,然后在页面上什么也不做(例如,不提交就填充一个非常大的表单,也不需要ajax调用。此时,用户有会话“打开”直到凌晨1点+ 10分钟+ 60分钟配置=凌晨1点10分,他试图按submit按钮,但它不能工作,因为应用程序池在1.40 (1.10 + 30分钟空闲)循环,所以用户丢失会话。
如果这可能是用户在应用程序上的错误,则空闲时间必须大于会话时间。。
发布于 2015-10-22 12:40:03
您正在发布的配置似乎是正确的。
也请检查IIS配置。来自这 TechNet链接:
如果您使用的是表单身份验证,请记住,它使用的是他自己的超时,可以设置如下:
<system.web>
<authentication mode="Forms">
<forms timeout="90"/>
</authentication>
<sessionState mode="InProc" timeout="90" />
</system.web>https://stackoverflow.com/questions/33280661
复制相似问题