【发布时间】:2009-07-29 12:51:32
【问题描述】:
在经典的 asp 页面中,我需要捕获错误描述并插入到数据库中的表中。 当我使用“on error resume next”时,我收到如下超时错误:
一次的最长时间 超出了要执行的脚本。你 可以通过指定一个 财产的新价值 Server.ScriptTimeout 或通过更改 IIS 管理中的值 工具
请帮我捕捉异常并插入数据库。
【问题讨论】:
标签: sql-server-2005 asp-classic
在经典的 asp 页面中,我需要捕获错误描述并插入到数据库中的表中。 当我使用“on error resume next”时,我收到如下超时错误:
一次的最长时间 超出了要执行的脚本。你 可以通过指定一个 财产的新价值 Server.ScriptTimeout 或通过更改 IIS 管理中的值 工具
请帮我捕捉异常并插入数据库。
【问题讨论】:
标签: sql-server-2005 asp-classic
我相信您的问题是“如何捕获脚本超时错误并将其记录在数据库中”。那么答案是你不能用 On error resume next 来做到这一点。
问题在于 ASP 已确定您的脚本运行时间过长。为了让您的代码能够捕获并记录错误,您的代码需要继续执行,但这正是 ASP 确定的,因为时间到了就不应发生。
一般来说,除非您可以继续在脚本中执行一些明智的操作(并且不包括日志记录),否则尝试使用 On Error Resume Next 来捕获错误是没有意义的。
改为创建一个新的 ASP 脚本,只要您遇到脚本错误(这将包括脚本超时错误),该脚本就会运行。在 IIS 管理器中打开您的应用程序属性对话框并选择自定义错误选项卡。编辑 500;100 HTTP 错误的处理程序并将其更改为 URL 和此 ASP 脚本的路径。
现在您可以将错误记录代码放入此 ASP 脚本中。您可以通过访问 Server.GetLastError 方法来访问失败的 ASP 页引发的错误。您还可以将此页面配置为向用户发送友好的内容。
【讨论】:
如果异常与您的数据库有关,您可能已经找到答案...您是否首先检查过问题是什么?
【讨论】:
为什么不调查/修复超时问题,而不是尝试捕获异常?虽然您应该记录错误,但您还应该首先调查它发生的原因。
【讨论】: