我们正在将ASP Classic / ASP.NET应用程序从IIS 6迁移到IIS 7.5。大多数东西在经典模式下都运行得很好,但我们对IIS 7.5如何处理错误有很多问题。我们使用经典的ASP页面进行错误报告,我们在此处捕获错误信息,然后重定向到页面以显示错误。根据我们在从日志记录页面访问时Server.GetLastError
和Request.ServerVariables("SCRIPT_NAME")
的测试,不会返回错误详细信息和来源。还有其他方法可以检索IIS 7.5上的错误信息或执行日志记录吗?
如果这有帮助,使用freb我们注意到IIS似乎生成了一个全新的请求,然后开始执行我们的错误捕获。
提前致谢。
答案 0 :(得分:3)
@smaclell:有关您的潜在解决方案,请参阅http://dylanbeattie.blogspot.com/2008/12/fun-with-servergetlasterror-in-classic.html。
以下是文章中的相关段落:
在Vista中有一个非常类似的已知错误,据说已修复 在SP1中,但看起来相同的修复程序不是Windows 2008的一部分 服务器呢。但是有一种解决方法 - 如果您设置了网站 默认错误属性(在IIS设置下 - >错误页面 - >编辑 功能设置...)到自定义页面,IIS将调用 无论何时未通过显式配置处理错误,此页面都会显示 状态代码处理程序(所以你的404等处理程序仍然可以工作) - 但是 出于某种原因,以这种方式处理错误意味着 Server.GetLastError()仍能正常工作。