2009-10-09 163 views
35

在IIS 6(以及其他版本太不友好)中,在属性 - >主目录选项卡 - >配置按钮 - >选项选项卡中有会话超时设置。看起来是这样的:IIS会话超时与ASP.NET会话超时

picture of IIS dialog

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

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

他们是,不管怎样,有关系吗?他们是否设置了相同的东西或不同的东西?

回答

43

他们是不一样的。 IIS会话超时适用于CLASIC ASP页面。 web.config是用于asp.net的。

11

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

3

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

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

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