我开发了一个安装在“实时”IIS 7.5 上的 ASP.NET Web 应用程序。Web 应用程序使用 http 会话在登录用户的页面之间传递参数。这在我的开发机器上效果很好(在 VS2010 IDE 中使用本地 IIS 进行了测试),但是当这个 Web 应用程序被上传到客户端的 IIS 并开始使用它(谷歌 Chrome 和 IE 浏览器)时,会话变量似乎在某些随机时刻消失。我的第一个猜测是通过 web.config 文件添加以下行来增加会话超时设置:
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
但这似乎并不能解决问题。所以这让我想知道,关于会话还有哪些其他设置?类似于一个内部文件夹,它保留了在实际 IIS 上溢出的所有会话的缓存?有任何想法吗?
编辑:按照@wy__ 的建议,我修改了 web.config 文件并开始在我的开发机器上看到同样的问题。这是我现在拥有的整个 system.web 部分:
<system.web>
<compilation targetFramework="4.0" debug="false"/>
<pages validateRequest="false"/>
<httpRuntime requestValidationMode="2.0" executionTimeout="110" maxRequestLength="262144"/>
<sessionState timeout="20" cookieless="true" regenerateExpiredSessionId="true"></sessionState>
</system.web>
我还检查了,只有一个w3wp.exe
进程在运行。