2011-11-29 215 views
1

我在IIS 5.0(Windows 2000服务器)中有一个asp.net应用程序,我的应用程序正在使用Windows身份验证,我已将超时设置为120分钟。假设用户从11:00开始工作,并且用户正在应用该应用程序,但是在约2小时即约13:00之后,即使用户正在处理该会话,该会话也意外超时。我将超时修改为300分钟,现在会话保持活动状态约5小时,即使用户仍在工作,也意外断开连接。 我有如下web.config文件。ASP.NET会话超时意外

<authentication mode="Windows"/> 
<sessionState timeout="120"> 

还在相同的120分钟的虚拟目录属性中检查了asp.net会话超时。

任何教导或解决方案将是非常有益的。

+0

120分钟2小时 - 所以定义“用户正在处理它”,会话应该在每次有回传时重置,以便用户做一些回传到服务器的内容?这似乎是一个明显的问题,但我有用户离开页面大大超过20分钟(默认会话超时),并感到惊讶,当他们回来时它不工作... – Murph

+1

任何机会,某事正在修改web.config/bin目录导致应用程序回收? – InSane

+0

你在共享主机上吗?例如。如果在一段时间内没有任何事情发生,discountasp会让您的应用程序进入睡眠状态 – Pleun

回答

1

超时在我的情况是因为当用户意外断开会话没有被正确地结束。当用户下一次连接时导致一些超时问题。正常关闭会话后,它工作正常

0

您是否检查应用程序池超时?

IIS -> application pools -> select pool -> Advanced settings -> section "process model" => Idle Time-out(minutes) 
+0

IIS 5没有应用程序池。您必须在web.config文件中执行该配置。 –

1

如果您使用的是InProc会话状态模式下,所有会话信息可以在任何时候丢失不管,如果应用程序池被回收的超时参数,可以在任何时间出于不同的原因发生的。

如果可以,我会更改为“超出处理会话状态”模式之一。

检查这些链接:

asp.net inproc vs out of proc performance

http://www.hanselman.com/blog/TroubleshootingExpiredASPNETSessionStateAndYourOptions.aspx

+0

我正在使用IIS 5.0,里面没有应用程序池,回收还会发生吗? – Arvind

+0

没关系,asp.net工作进程经常被回收。 – Icarus

0

有这个相同的问题。我的情况下wasnt的timout中的sessionState

<sessionState mode="InProc" timeout="5" /> 

它形式超时

<authentication mode="Forms"> 
    <forms loginUrl="~/" slidingExpiration="true" timeout="5" /> 
</authentication> 

我设置在形式为120(2小时)的超时,其工作

<authentication mode="Forms"> 
    <forms loginUrl="~/" slidingExpiration="true" timeout="120" /> 
</authentication>