经典 ASP:捕获错误
是否有可能在全局级别捕获经典 ASP 中的所有 500 个错误?也许是 IIS 中的东西。我现在用的是II6。我喜欢捕获错误消息,然后将其存储在数据库中。我知道它在 ASPX 页面中是可能的,但不确切知道你在经典的 asp 中是如何做的。
谢谢
Is it possible to capture all 500 errors in Classic ASP at a global level? Maybe something in IIS. I'm using II6 at the moment. I like to capture the error message and then store it in the database. I know its possible in ASPX pages, but don't know exactly how you do in classic asp.
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是的,创建一个将错误详细信息记录到数据库的 asp 页面,并将其设置为 IIS 中的 500 处理程序页面,如下所示。
使用 Server.GetLastError 对象获取处理程序脚本中错误的详细信息。
为了提高弹性,在 500 处理程序中记录到文本文件而不是数据库可能是个好主意。
Yes, create an asp page which will log the error details to the database, and set this to be the 500 handler page in IIS as below.
Use the Server.GetLastError object to get the details of the error in your handler script.
It might be a good idea to log to a text file rather than a DB in your 500 handler for resiliency.
补充乔恩的答案,使用此脚本将错误写入日志文件:
Complementing Jon's answer, use this script to write errors to a log file:
经典 ASP 中的错误处理是一件非常痛苦的事情。您可以使用
on error resume next
捕获您认为会发生的错误,然后检查以下代码行中的错误代码。或者,您可以扫描服务器日志以查找 500 错误。或者在 IIS 设置中设置“500 错误”页面。
Error handling in classic ASP is a complete pain. You can catch the error where you think it's going to occur using
on error resume next
, then check for the error code in the following line of code.Alternately you can scan the server logs for 500 errors. or set up a "500 error" page in your IIS settings.
添加到 @Jon Eastwood 的答案 - 如果您使用的是 IIS 7.5,那么您将根据下图查找“.NET 错误页面”,而不是“自定义错误”:
这适用于Windows Server 2008 和其他较新的 Windows SKU。
To add to @Jon Eastwood's answer - if you are using IIS 7.5, then instead of "Custom errors" you will look for ".NET Error Pages" per the image below:
This applies to Windows Server 2008 and other newer Windows SKUs.