我把它设置为 120 分钟,但它不会持续那么长时间。我不确定它会持续多久,但我知道它不是 2 小时。
<sessionState timeout="120" />
这仅在默认的 Web.config 中设置,而不是在 Views 目录或 Web.Debug.config 或 Web.Release.config 中的设置。
由于默认会话超时为 20 分钟,这会有所不同吗?
我把它设置为 120 分钟,但它不会持续那么长时间。我不确定它会持续多久,但我知道它不是 2 小时。
<sessionState timeout="120" />
这仅在默认的 Web.config 中设置,而不是在 Views 目录或 Web.Debug.config 或 Web.Release.config 中的设置。
由于默认会话超时为 20 分钟,这会有所不同吗?
为保证您的会话不会因 w3wp.exe 崩溃或应用程序池回收而终止,您应该将会话状态移动到单独的存储中。最简单的是 ASP.Net State Server 服务。确保在主机上启动服务并将其添加到您的 web.config 中:
<sessionState mode="StateServer"
stateConnectionString="tcpip=SampleStateServer:42424"
cookieless="false"
timeout="120"/>
我认为你应该定义会话状态模式
ASP.NET 中有不同的会话状态 http://msdn.microsoft.com/en-us/library/ms178586(v=VS.80).aspx
In-Process Mode
默认为<sessionState mode="InProc" timeout="10" />
, 重建项目后会话将被清除
State Server Mode 我们可以用这个,但是记得打开服务——ASP.NET State Service
<sessionState mode="StateServer"
stateConnectionString="tcpip=localhost:42424"
sqlConnectionString="data source=.\SQLEXPRESS; User ID=sa;Password=12345678; Integrated Security=SSPI"
cookieless="false"
timeout="2"
/>
SQL Server 模式我们可以在通过命令创建 DB ASPSate 后使用它,请查看此站点以获取详细信息 - http://www.brianstevenson.com/blog/aspstate-concurrently-running-for-net-1011-and-net- 20
<sessionState mode="SQLServer"
stateConnectionString="tcpip=localhost:63586"
sqlConnectionString="data source=.\SQLEXPRESS; User ID=sa;Password=12345678; Integrated Security=SSPI"
cookieless="false"
timeout="2"
/>
State Server Mode & SQL Server Mode 下的会话在重建项目后不会被清除,有利于开发