我遇到会话超时问题,即使我在web.config中添加了如下代码,但它不起作用,它在10分钟内到期。
<sessionState mode="InProc" timeout="300"></sessionState>
服务器的会话超时为20分钟。
请帮我解决会话超时问题?
答案 0 :(得分:1)
应用程序使用的IIS应用程序池上设置的空闲超时是多少?由于您正在使用InProc会话,如果池进程终止,则会话也将丢失。
答案 1 :(得分:1)
尽管您提到的服务器的会话超时时间为20分钟。由于以下原因,您可能会丢失会话状态数据:
解决方案:使用StateServer会话状态模式:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="UseCookies" timeout="300" regenerateExpiredSessionId="true" />
访问此链接以配置StateServer:Configure a State Server to Maintain Session State
答案 2 :(得分:0)
也许Cookie在您的浏览器中关闭,或者设置为不是域,而是设置为某个文件夹或子域。使用以下方式测试此会话
<sessionState cookieless="true" mode="InProc" timeout="300" > </sessionState>
如果它可以工作则问题在于您的浏览器1)cookie已关闭 OR 2)某些请求会使会话值为null。
<强>更新强>
如果这是chrome的问题,那么它会请求favicon.ico(在我的情况下)see here我的更新问题。
答案 3 :(得分:0)
检查您的应用程序池空闲超时,默认为20分钟(如果应用程序池空闲20分钟,它将回收并且所有进程内会话将被清除)增加其超时