【问题标题】:Error Handling in Classic Asp without timeout error没有超时错误的经典 Asp 中的错误处理
【发布时间】:2009-07-29 12:51:32
【问题描述】:

在经典的 asp 页面中,我需要捕获错误描述并插入到数据库中的表中。 当我使用“on error resume next”时,我收到如下超时错误:

一次的最长时间 超出了要执行的脚本。你 可以通过指定一个 财产的新价值 Server.ScriptTimeout 或通过更改 IIS 管理中的值 工具

请帮我捕捉异常并插入数据库。

【问题讨论】:

    标签: sql-server-2005 asp-classic


    【解决方案1】:

    我相信您的问题是“如何捕获脚本超时错误并将其记录在数据库中”。那么答案是你不能用 On error resume next 来做到这一点。

    问题在于 ASP 已确定您的脚本运行时间过长。为了让您的代码能够捕获并记录错误,您的代码需要继续执行,但这正是 ASP 确定的,因为时间到了就不应发生。

    一般来说,除非您可以继续在脚本中执行一些明智的操作(并且不包括日志记录),否则尝试使用 On Error Resume Next 来捕获错误是没有意义的。

    改为创建一个新的 ASP 脚本,只要您遇到脚本错误(这将包括脚本超时错误),该脚本就会运行。在 IIS 管理器中打开您的应用程序属性对话框并选择自定义错误选项卡。编辑 500;100 HTTP 错误的处理程序并将其更改为 URL 和此 ASP 脚本的路径。

    现在您可以将错误记录代码放入此 ASP 脚本中。您可以通过访问 Server.GetLastError 方法来访问失败的 ASP 页引发的错误。您还可以将此页面配置为向用户发送友好的内容。

    【讨论】:

    【解决方案2】:

    如果异常与您的数据库有关,您可能已经找到答案...您是否首先检查过问题是什么?

    【讨论】:

      【解决方案3】:

      为什么不调查/修复超时问题,而不是尝试捕获异常?虽然您应该记录错误,但您还应该首先调查它发生的原因。

      【讨论】:

      • @Cyber​​not-我误读了你的问题。最初我以为您遇到了 ADO 超时问题。不过,我对解决超时原因的回答仍然有效。作为临时措施,您可以增加超时,如此处所述-msdn.microsoft.com/en-us/library/ms524831.aspx
      猜你喜欢
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2010-11-04
      相关资源
      最近更新 更多