1

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

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

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

当网站停止响应时,我没有注意到任何规则。有时,它一直运行良好,有时它只是停止。

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

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

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

我注意到如果我快速点击站点,响应速度会更慢。看起来在几次快速点击后服务器可能出于某种原因拒绝该会话?

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

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

谢谢!

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

4

3 回答 3

0

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

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

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

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

谢谢大家!

于 2013-05-10T16:31:53.167 回答
0

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

然后我只是在每个可疑的代码部分之前和之后调用该函数,并在几天后检查它发现了什么。

请记住用户 timer() 作为其中的一部分,因为普通时间戳对于以毫秒为单位捕获时间是无用的

于 2013-04-22T12:01:41.453 回答
0

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

于 2013-10-09T07:50:48.333 回答