【问题标题】:If an ASP page takes too long to load, notify me如果 ASP 页面加载时间过长,请通知我
【发布时间】:2016-10-27 14:15:53
【问题描述】:

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

举个例子(加载 30 秒):

If ServerScriptTimeout > 30 Then
  response.write "Page is taking longer to load admins, please investigate"
Else
End If

这样的事情会奏效甚至可能吗?

我们在服务器上使用 IIS7

提前感谢您的帮助。

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

【问题讨论】:

    标签: html iis asp-classic


    【解决方案1】:

    最好的方法是打开 IIS 日志并确保启用time-taken,以毫秒为单位记录。

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

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

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

    【讨论】:

    • 感谢您的回复。按照您的第四段,如果我在超时发生之前对其进行编程怎么办?因此,假设超时设置为 60 秒到期。如果我编程它在 30 后通知站点管理员,你认为这是可行的吗?我想我正在苦苦挣扎的地方是我是否需要从本地执行此操作或保持服务器端写入。
    • 您如何能 100% 确定您的代码会执行? Javascript 在客户端运行,因此除非您调用 webapi 通知您,否则您永远不会收到通知。如果这是一个外部网站,另一种方法是在 uptimerobot.com 上创建一个帐户并进行关键字监控,如果关键字未显示在页面上,您将收到警报。
    【解决方案2】:

    一些网站使用的一个选项是让另一个应用程序定期在登录页面上执行 GET,如果它无法加载或需要很长时间才能发送警报。

    有很多第三方服务提供此功能,搜索“页面可用性测试”,或者如果您希望它是内部的,编写起来并不难。但关键是它必须在 IIS 服务器之外。

    【讨论】:

    • 感谢您的回复。我认为我们公司不能很好地处理使用第 3 方的问题,安全性很严格,而且获得批准几乎是不可能的,哈哈。这就是为什么他们要我写出来。所以,我想知道我是否可以扩展 ScriptTimeout 的使用,看看它是否有任何作用。
    【解决方案3】:

    我想我可能已经想通了。如果您愿意,请提供您对此的反馈。

    '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.")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多