3

我正在使用旧版经典 ASP 页面(根据需要转换为 ASP.NET)和新的 ASP.NET 页面的网站上工作。IIS 7 集成管道的使用对我们的配置非常有帮助。例如,我们可以通过配置 web.config 文件的适当部分(即不需要对经典 ASP 页面进行更改,有关更多信息,请参阅),使表单身份验证与经典 ASP 页面自动神奇地工作。

我的一位同事认为,web.config <customErrors> 部分中指定的自定义错误页面也应该自动神奇地应用于经典 ASP 页面,但对于我们的网站,它仅适用于 ASP.NET 页面。我也找不到任何描述使用 IIS 7 集成管道将自定义错误页面应用于经典 ASP 的能力的信息。

对于在具有集成管道的 IIS7 下运行的网站,是否可以通过 web.config 将自定义错误页面应用于经典 ASP 页面?如果是这样,怎么做?

4

1 回答 1

3

The IIS7 custom error pages are handled in the <system.webServer> configuration section not the <customErrors> section under <system.web> which applies to ASP.NET only:

<configuration>
    <system.webServer>
        <httpErrors>
            <error 
               statusCode="500" 
               subStatusCode="100" 
               path="/500errors.asp" 
               responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

Beware though of these settings conflicting with ASP.NET custom errors. If you're running .NET 3.5 and above you can set Response.TrySkipIisCustomErrors in your ASP.NET error page code-behind (or error controller if using MVC) to prevent IIS overriding your ASP.NET error page(s):

Response.TrySkipIisCustomErrors = true // ASP.NET Forms

This article by Rick Strahl explains this problem in a bit more depth:

IIS 7 Error Pages taking over 500 Errors

于 2010-10-06T17:21:03.037 回答