经过长时间的浏览器打开后,经典ASP应用程序挂起

经过长时间的浏览器打开后,经典ASP应用程序挂起

问题描述:

我有一个使用SQL后端的经典ASP应用程序。该应用程序使用Access直到本周早些时候,当我改变它试图解决这个问题,无济于事。问题在于用户整天都在IE中打开网站,并且在使用之间可能需要一个小时或更长时间。在开放一段时间后,当他们尝试提出请求时,网站会挂起并最终显示“无法显示页面”。如果他们点击后退按钮,然后刷新页面,它工作正常。经过长时间的浏览器打开后,经典ASP应用程序挂起

我刚刚将应用程序池从Integrated更改为Classic,以便可以修复它,但如果任何人有任何其他想法,我欢迎他们。 IIS(7.5)上还有一个其他站点,并且用户遇到此挂起时,服务器上没有大量资源使用情况。

此外,我已启用失败的请求跟踪运行超过3秒的任何内容。当这些挂起事件发生时,我得到日志文件,但他们说请求返回了状态码200,但似乎总是在NOTIFY_MODULE_START - IsapiModule,Notification 128,Notification EXECUTE_REQUEST_HANDLER的日志中停止。该事件的模块通知在持续时间内显示NO_END。

感谢,

大卫

在一个设定的时间后,IIS会话超时 - 默认值是20分钟。

你可以做的是设置一个会话变量您的着陆页上 - 例如

<% Session("Active") = "yes" %> 

然后对你的所有其他网页的脚本,如果会话不超时反弹你回到登陆页面 - 例如

<% if Session("Active") <> "yes" then 
Response.redirect("mylandingpage.asp") 
end if %> 
+0

我将会话超时更改为480(8小时),而且我仍然遇到同样的问题。 – 2013-02-20 21:56:09

你可以建立在Javascript背景AJAX/jQuery的平儿,只是ping通的服务器每5分钟刷新会话,并且永远不会被注销。

+0

他们没有被注销,本身。他们不必重新登录,但刷新页面似乎可以解决问题。 – 2013-02-21 14:11:11

+0

我认为你的登录使用了会话ID,但是如果你的登录/注销代码不依赖于会话ID而是一个cookie,那么这就是你刷新工作的原因。我的答案仍然是一个有效的修复,应该考虑,因为ajax ping将与页面刷新相同,但在后台默默无闻地完成。 – silver 2013-04-18 06:31:36