我需要在随机注销时调试的应用程序之一的 web.config 中有以下 session 状态条目
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
我检查了网络服务器,win 2003,Asp.net 状态服务未运行,也没有 sql 服务器实例正在运行。
根据 web.config 中的此条目, session 超时是多少。 20分钟?我们是否必须运行 Asp.net 状态服务才能使用 stateConnectionString?
最佳答案
您已设置 mode
属性为InProc
,这意味着 session 将存储在 IIS 工作进程内。这意味着stateConnectionString
和sqlConnectionString
可能会被忽略。
如果您想使用其他模式,您应该将 InProc 更改为 StateServer
或SQLServer
分别。更多详情here .
使用 InProc, session 仍应存储 20 分钟,但如果您的工作进程回收(默认情况下每 29 小时发生一次),它将丢失所有 session ,因此您可能希望使用 StateServer
(应启动 ASP.NET 状态服务),或用于管理登录用户任务的另一个更持久的选项。
关于c# - 在 ASP.NET 中处理 session 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876103/