日期:2014-05-17  浏览次数:20805 次

使用ASP.NET 状态服务碰到的一些情况

在asp.net中使用ASP.NET 状态服务来保存session,原来是没有问题的,后来换了一台服务器,但是发现应用程序池一回收,session就丢失。

情况是这样的

1、开启asp.net状态服务

2、在web.config里添加了

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

3、增加一个单独的windows用户runuser,添加到iis_wpg组

4、把应用程序池的启动用户为runuser

5、网站的身份验证是runuser


就这样,保存session是没问题的,但是当程序池回收后,session就丢失。

当把应用程序池的启动用户恢复为networkService,回收后session正常。


后来上网搜,找到一段东西加入到web.config

<machineKey
validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24EA123C" validation="SHA1"/>


没想到就好了。