0

我把它设置为 120 分钟,但它不会持续那么长时间。我不确定它会持续多久,但我知道它不是 2 小时。

<sessionState timeout="120" />

这仅在默认的 Web.config 中设置,而不是在 Views 目录或 Web.Debug.config 或 Web.Release.config 中的设置。

由于默认会话超时为 20 分钟,这会有所不同吗?

4

2 回答 2

1

为保证您的会话不会因 w3wp.exe 崩溃或应用程序池回收而终止,您应该将会话状态移动到单独的存储中。最简单的是 ASP.Net State Server 服务。确保在主机上启动服务并将其添加到您的 web.config 中:

<sessionState mode="StateServer"
    stateConnectionString="tcpip=SampleStateServer:42424"
    cookieless="false"
    timeout="120"/>
于 2012-12-20T19:04:43.153 回答
0

我认为你应该定义会话状态模式

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 下的会话在重建项目后不会被清除,有利于开发

于 2013-08-09T03:41:39.427 回答