技术交流QQ群【JAVA,.NET,BigData,AI】:170933152
最后发现是这个原因,在IIS中找到应用程序池,然后右边点击,详细设置,然后找到,进程模块中的
最大工作进程数,设置为1
如果不是1,由于web.config中的<sessionState mode="InProc",是把session存在进程中了,如果iis工作进程是多个,就会出现
session超时不起作用的问题
-------------------------
asp.net应用时,修改web.config中的SessionState节点。
stateserver模式:
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false"timeout="120"/>
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>
InProc模式:
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false"timeout="120"/>
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/> InProc模式 优点:获取session状态的速度快,session状态直接存储在iis的进程中。 缺点:易丢失,经常需要重新登录
StateServer模式 优点:session状态单独存储在一个进程中,不会因为iis或者应用的重启而丢失状态 缺点:获取session状态的速度比InProc慢一些,毕竟是两个不同的进程。
在开发的时候,对应用有一点修改,就会导致应用的重启,这时候如果使用InProc模式 ,那么每次都需要重新登录,比较浪费时间.建议使用StateServer模式。并在iis里面设置超时时间长一些。
注:使用StateServer模式的时候 1、要开启“ASP.NET State Service”服务(设为“自动”) 状态服务