在 IIS 6(以及其他版本)中,属性 -> 主目录选项卡 -> 配置按钮 -> 选项选项卡中有一个会话超时设置。看起来像这样:
在 ASP.NET web.config 中有一个 SessionState 设置,如下所示:
<system.web>
<sessionState timeout="120" />
<!-- etc .. -->
</system.web>
他们有什么关系吗?他们设置相同的东西还是不同的东西?
在 IIS 6(以及其他版本)中,属性 -> 主目录选项卡 -> 配置按钮 -> 选项选项卡中有一个会话超时设置。看起来像这样:
在 ASP.NET web.config 中有一个 SessionState 设置,如下所示:
<system.web>
<sessionState timeout="120" />
<!-- etc .. -->
</system.web>
他们有什么关系吗?他们设置相同的东西还是不同的东西?
它们是不相同的。IIS 会话超时适用于经典 ASP 页面。web.config 一个用于 asp.net。
据我所知,IIS 设置对 ASP.NET 会话没有影响——这些必须在 web.config 中设置。
您还应该考虑应用程序池空闲超时。通过单击应用程序分配到的应用程序池上的属性 (IIS 6) 或高级设置 (IIS 7.5),可以找到应用程序池的设置。
确保此值至少设置为会话超时,以确保所有会话在整个会话超时期间持续存在。
这两个值之所以相互依赖,是因为会话信息实际上存储在应用程序池的工作进程中。也就是说,如果工作进程因任何原因被关闭或杀死,会话信息就会丢失。