如果ASP页面加载时间过长,请通知我

时间:2016-10-27 14:15:53

标签: html iis asp-classic

我们的环境中有一个开发框,很快将转移到生产环境。它是用经典的asp编写的。作为灾难​​恢复计划的一部分,其中一项任务是确保在加载页面时出现问题,以通知站点管理员。我知道如何发送通知,因为我们有一个用于发送通信的邮件处理器,但我正在寻找有关如何做类似IF语句的帮助,如果页面还没有在x秒内完成加载,通过电子邮件发送站点管理员并继续加载页面,直到它完成加载或超时。同样,我们现在没有任何问题,但如果有任何未来的问题,我们需要有一些东西。同样,这是在经典的asp。

中完成的

这是一个例子(30秒加载):

{{1}}

这样的事情是否有效甚至可能?

我们在服务器上使用IIS7

提前感谢您的帮助。

更新 - 只是添加。如果我们的某个数据库连接存在连接问题,我们已经准备好启动页面和通知。它验证连接,然后执行测试查询。如果其中任何一个失败,它将为站点管理员提供更新。我想为页面加载时间提供类似的选项。我已经有一个脚本超时,但不确定脚本超时是否可以使用if语句在触发超时之前经过x秒后执行某些操作。

3 个答案:

答案 0 :(得分:1)

最好的方法是启用IIS日志记录并确保启用以毫秒记录的time-taken

现在,您可以创建程序或日志解析器来监视IIS日志,也可以使用IIS日志监控软件,如果时间超过30000毫秒,只需将警报设置为页面输出。

有很多工具可以做到这一点,只需搜索一个适合您需求的工具。

在代码本身中执行此操作,如果超时,则您将永远不会收到警报,因此我不认为这是您正在寻找的选项。

答案 1 :(得分:1)

某些网站使用的一个选项是让其他应用程序定期在着陆页上执行GET,如果无法加载或需要很长时间才能发送提醒。

有很多第三方服务提供此服务,搜索“页面可用性测试”,或者如果您想要内部服务,那么写起来就不那么难了。但关键是它必须是IIS服务器的外部。

答案 2 :(得分:0)

我想我可能已经想到了这一点。如果您愿意,请提供您的反馈意见。

'Beginning of the page`
  Starttime = Timer()


  Do Until i=5382343
        i=i+1
  Loop

  'Body of the page here


  'at the bottom, type this in
   TimeTest = (Timer - Starttime)

    If TimeTest > 30.500000 Then
    response.write "SLOW, Admins Notified"
    Else
    response.write "FAST"
    End If

    Response.Write("<br>The page was generated in : " & (Timer - Starttime) & " seconds.")