Iis 7 经典的ASP应用程序在浏览器中长时间处于打开状态后挂起

Iis 7 经典的ASP应用程序在浏览器中长时间处于打开状态后挂起,iis-7,asp-classic,Iis 7,Asp Classic,我有一个使用SQL后端的经典ASP应用程序。该应用程序一直使用Access,直到本周早些时候,我才将其更改为试图解决此问题,但毫无效果。问题是,用户在IE中整天都保持网站的开放状态,两次使用之间可能需要一个小时或更长时间。在网站打开一段时间后,当他们试图提出请求时,网站会挂起并最终显示“页面无法显示”。如果他们点击后退按钮,然后刷新页面,它工作正常 我刚刚将应用程序池从集成版改为经典版,这样可能会修复它,但如果有人有任何其他想法,我欢迎他们。IIS(7.5)上还有一个站点,当用户遇到此挂起时,服

我有一个使用SQL后端的经典ASP应用程序。该应用程序一直使用Access,直到本周早些时候,我才将其更改为试图解决此问题,但毫无效果。问题是,用户在IE中整天都保持网站的开放状态,两次使用之间可能需要一个小时或更长时间。在网站打开一段时间后,当他们试图提出请求时,网站会挂起并最终显示“页面无法显示”。如果他们点击后退按钮,然后刷新页面,它工作正常

我刚刚将应用程序池从集成版改为经典版,这样可能会修复它,但如果有人有任何其他想法,我欢迎他们。IIS(7.5)上还有一个站点,当用户遇到此挂起时,服务器上没有大量资源使用

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

谢谢


David

在IIS会话上,在设置的时间段后超时-默认值为20分钟

您可以做的是在登录页上设置一个会话变量-例如

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

然后在所有其他页面上设置一个脚本,以便在会话超时时将您返回到登录页面-例如

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


您可以在Javascript中构建一个背景AJAX/jquery pinger,每5分钟ping一次服务器以刷新会话,您就永远不会注销。

我将会话超时更改为480(8小时),但仍然存在相同的问题。从本质上讲,它们没有被注销。他们不必重新登录,但刷新页面似乎可以解决问题。我假设您的登录使用了会话ID,但如果您的登录/注销代码不依赖于会话ID,而是依赖于cookie(例如),那么这就是刷新工作的原因。我的回答仍然是一个有效的修复,应该考虑,因为ajax ping与页面刷新相同,但在后台以静默方式完成。