2013-03-25 75 views
0

我们在IIS 7.5上有一个经典的ASP网站。经典ASP站点偶尔挂起

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

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

当网站停止响应时,我没有注意到任何规则。有时候,它一直工作得很好,有时它会停下来。

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

但是,如果我打开其他浏览器,比如说我在Chrome并打开IE,新浏览器中的站点又快又快。

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

我注意到,如果我通过网站快速点击,我会发现响应缓慢的机会更多。它看起来像几个快速点击服务器可能会因为某种原因拒绝该会话?

此外,不知道它是否有帮助和有关的问题,我经常看到许多不同的ASP会话cookie。我想它应该只有一个会话cookie在浏览器中的每个用户,但我看到几个不同的会话cookie不同的值。

有人见过类似的东西吗?任何想法如何解决这些偶尔的缓慢反应?

谢谢!

编辑: 我发现,当反应慢发生,我无法加载甚至是空的ASP页面(我创建页面,一行代码,只需用的Response.Write“工作”)。 当然,如果我在另一个浏览器中打开该页面,它很快就能正常工作。当问题发生时,网站只会停留在那个会话中。如果我在其他浏览器中尝试相同的页面或在同一浏览器中清除会话cookie,页面加载速度很快。

+0

通常的原因是失控的数据库查询。不知道你的应用程序如何工作,这个问题是不是很负责任。 – 2013-03-25 21:20:18

+0

我怀疑这是数据库,因为每个页面都可能发生缓慢的响应。没有规则。发生问题时,网站上的任何页面都无法访问。但是,如果我手动清除ASP会话cookie,那么网站又快了。另外,如果我打开另一个浏览器,并且网站也会很快。 – BorisP 2013-03-25 21:29:31

+0

这是一个艰难的。您可能想要在serverfault.com上发帖。我认为你不会在这里找到答案。 – 2013-03-25 21:42:04

回答

0

拍摄时间,我想我找到了答案。 ASP网站使用几个自定义COM组件。

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

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

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

谢谢大家!

0

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

然后我只是在每个可疑的代码段之前和之后调用函数,并在几天后检查后发现它的结果。

记住用户计时器()作为其中的一部分作为正常时间戳usless在毫秒级

+0

哇,这是个好主意。页面悬挂,但我不确定在哪里。由于它在随机页面上,我想它是一些包含文件。 – BorisP 2013-04-24 19:58:45

+0

嗯,我试过了,但看起来它与任何页面都没有关系。然后,我点击网站上的链接,并在一段时间后挂起。当发生这种情况时,我甚至无法加载空白的ASP页面(我创建了一个空白页面,以查看在没有代码的情况下页面是否在网站挂起时工作)。 – BorisP 2013-05-08 13:20:57

0

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