经典ASP网站偶尔会挂起

时间:2013-03-25 21:10:23

标签: asp-classic iis-7.5 session-cookies

我们在IIS 7.5上有一个经典的ASP网站。

用户随机响应缓慢。当发生这种情况时,用户几分钟都无法做任何事情,这非常令人沮丧。

例如,我可以打开主页,然后通过类别点击几次,然后网站就会停止响应。

当网站停止响应时,我没有注意到任何规则。有时,它一直工作正常,有时它会停止。

当它缓慢响应时,我可以等几分钟然后获取页面。我试图阻止页面加载,并刷新页面,但这没有用。发生这种情况时,我无法刷新页面,也无法转到其他页面。网站上的每个页面都没有响应。

但是,如果我打开其他浏览器,请说我在Chrome中并打开IE浏览器,新浏览器中的网站再次快速。

我唯一的线索,如果我在客户端删除ASP会话cookie,那么在同一个浏览器中再次加载页面会很快。所以,它显然与ASP会话cookie有关。 IIS或ASP引擎可以出于某种原因以某种方式阻止ASP会话吗?

我注意到如果我快速点击网站,反应迟钝的可能性会更大。看起来几次快速点击后,服务器可能会出于某种原因拒绝该会话?

另外,不确定它是否有用并且与问题有关,我经常会看到许多不同的ASP会话cookie。我想在浏览器中每个用户应该只有一个会话cookie,但我看到几个不同的会话cookie具有不同的值。

有人见过类似的东西吗?知道如何解决这些偶尔的慢响应吗?

谢谢!

修改 我发现当响应缓慢时,我甚至无法加载空的ASP页面(我用一行代码创建了页面,只是使用Response.Write“工作”)。 当然,如果我在另一个浏览器中打开该页面,它立即工作。当问题发生时,网站仅挂起该会话。如果我在其他浏览器中尝试相同的页面或在同一浏览器中清除会话cookie,页面加载速度很快。

3 个答案:

答案 0 :(得分:0)

对于这些问题,我只是编写了一个粗略的函数(我在一个包含中)并放入问题页面。该函数写出时间戳,计时器(以毫秒范围捕获时间)以及我想要的任何其他变量文本文件。

然后我只是在每个可疑的代码段之前和之后调用该函数,并在几天后检查它以查找它的内容。

请记住用户timer()作为其中的一部分,因为正常时间戳无法以毫秒级捕获时间

答案 1 :(得分:0)

我想我找到了答案。 ASP网站正在使用几个自定义COM组件。

其中一些组件正在光盘上写入日志文件。这些日志是.txt文件。

日志文件随着时间的推移而增长,其中一个超过4GB。不知何故,写入大文件导致服务器在加载几页后缓慢响应。有趣的是,新的浏览器窗口可以在其他浏览器中挂起时快速打开页面。

因此,我删除了从ASP代码写入日志文件的那部分,并且网站现在正在工作而不会挂起。

全部谢谢!

答案 2 :(得分:0)

我也有这个问题。我没有任何数据库或任何自定义activex对象,我在每个操作后立即清理每个对象(如scripting.filesystemobject),但我确实在应用程序中启用了会话,以便我可以设置会话代码页等等。我注意到服务器生成了很多aspsessionid cookie;也就是说,到页面挂起时,可能会有50个aspsessionid cookie。如果会话已启用,IIS会生成这些会话,而我无法对其进行任何操作。每隔20-30分钟,页面突然在我的会话中挂起。启动另一个浏览器实例(例如另一台机器或隐私浏览模式)将再次正确响应。离开浏览器5分钟也会使它开始正常响应。我知道有循环我可以检查response.isclientconnected并做一个response.end如果他们的连接已经死了以终止服务器进程,但我的客户端仍然连接,所以这没有帮助。