在asp.net中处理sessionstate

时间:2013-09-18 15:15:34

标签: c# asp.net

我在随机注销时需要调试的其中一个应用程序的web.config中有以下会话状态条目

<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

我已经检查过webserver,win 2003,Asp.net状态服务没有运行,也没有运行sql server的实例。

会话根据web.config中的此条目超时。 20分钟?我们是否必须运行Asp.net状态服务才能使用stateConnectionString?

1 个答案:

答案 0 :(得分:4)

您已将mode属性设置为InProc,这意味着会话将存储在IIS工作进程中。这意味着stateConnectionStringsqlConnectionString可能会被忽略。

如果您想使用其他模式,则应将InProc分别更改为StateServerSQLServer。更多详情here

使用InProc,会话应该仍然存储20分钟,但如果您的工作进程回收,默认情况下每29小时进行一次,它将丢失所有会话,因此您可能希望使用StateServer (应启动ASP.NET状态服务),或管理登录用户任务的其他更持久的选项。