IIS 会话超时与 ASP.NET 会话超时

Posted

技术标签:

【中文标题】IIS 会话超时与 ASP.NET 会话超时【英文标题】:IIS Session Timeout vs ASP.NET Session Timeout 【发布时间】:2010-12-05 09:29:18 【问题描述】:

在 IIS 6(以及其他版本)中,属性 -> 主目录选项卡 -> 配置按钮 -> 选项选项卡中有一个会话超时设置。看起来像这样:

并且在 ASP.NET web.config 中有一个 SessionState 设置,如下所示:

<system.web>
    <sessionState timeout="120" />
    <!-- etc .. -->
</system.web>

它们是否有关联?他们设置相同的东西还是不同的东西?

【问题讨论】:

【参考方案1】:

它们不一样。 IIS 会话超时适用于经典 ASP 页面。 web.config 一个用于 asp.net。

【讨论】:

【参考方案2】:

据我所知,IIS 设置对 ASP.NET 会话没有影响 - 这些必须在 web.config 中设置。

【讨论】:

【参考方案3】:

您还应该考虑应用程序池空闲超时。通过单击应用程序分配到的应用程序池上的属性 (IIS 6) 或高级设置 (IIS 7.5) 可以找到应用程序池的设置。

确保此值至少设置为会话超时,以确保所有会话在整个会话超时期间持续存在。

这两个值之所以相互依赖,是因为会话信息实际上存储在应用程序池的工作进程中。也就是说,如果工作进程因任何原因被关闭或杀死,会话信息将会丢失。

【讨论】:

以上是关于IIS 会话超时与 ASP.NET 会话超时的主要内容,如果未能解决你的问题,请参考以下文章

长时间 ASP.NET 操作的 IIS 请求超时

ASP.NET Core 会话超时

什么是 ASP.NET 中的默认会话超时?

ASP.NET 窗体身份验证超时和会话超时

从 IIS 获取我托管的 Asp.Net 网站的运行会话计数

如何在过期前延长asp.net中的会话超时