如何在IIS7,IIS7.5下使用自定义和详细错误模式

时间:2018-12-24 03:58:13

标签: iis asp-classic web-config http-error

条件

我已经创建了自己的Web框架,该框架将截获错误404并根据URL显示适当的内容(当URL有效或无效时,它还会发送正确的HTTP代码200或404)。我将整个框架放在单个 /Default.asp 下(其中包含多个文件,但这并不重要)。它在IIS6下可以完美运行,但是我无法弄清楚如何在IIS7下进行调试和开发。

问题

面临的挑战是为web.config文件选择正确的错误模式。 如果设置 errorMode = Custom ,则我的代码可以正常工作,甚至在开发过程中也可以看到代码中的错误,但是我无法调试其他ASP文件,因为那里的任何错误都将重定向到< strong> /default.asp ,而不是在浏览器中显示给我。

因此,当我需要调试其他ASP文件时,我会将错误模式从“自定义”更改为 errorMode = Detailed

然后我可以轻松地看到行号和错误描述,但这显然意味着我的框架将无法处理不存在的URL的错误404。

每次进行检查时,我一直在进行这种“跳舞”切换 web.config ,这变得非常烦人。这是我的 web.config 文件:

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
  <system.webServer>
   <!-- I'm changing Custom to Detailed here when I need to debug -->
   <httpErrors errorMode="Custom">
     <remove statusCode="404" subStatusCode="-1" />
     <error statusCode="404" prefixLanguageFilePath=""
      path="/Default.asp" responseMode="ExecuteURL" />

<!-- I have experimented with this, but unsuccessfully, so I comment it out
      <remove statusCode="500" subStatusCode="-1" />
      <error statusCode="500" prefixLanguageFilePath="" 
       path="/Default.asp" responseMode="ExecuteURL" />
-->

   </httpErrors>
  <directoryBrowse enabled="false" />
 </system.webServer>
</configuration>

问题:

是否可以同时使用两种方法?

一个自定义.ASP文件,用于处理404错误(以及其他可能的错误),但还剩下500个错误要由服务器处理并显示详细的错误。

我只需要查看行号和错误说明即可。

0 个答案:

没有答案