ASP.NET 的 Session 默认是存储在 IIS 进程中的,默认是 20 分钟,但是实际使用中,我们会发现经常还不到 20 分钟,Session 就丢失了。
所以建议不将 Session 存储在 IIS 进程中,考虑使用 StateServer 模式。
步骤一
在服务中,启动 ASP.NET State Service,同时建议设置为自动启动,以避免服务器重启时,需要手工启动服务。
步骤二
在 IIS 的会话状态中,选择状态服务器。
或者直接在 web.config 中配置。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <sessionState mode="StateServer" /> </system.web> </configuration>
更详细参数:
<sessionState mode="StateServer" cookieless="false" timeout="20" stateConnectionString="tcpip=loopback:42424" />
timeout 是分钟。