0

我的 web.config 中有以下内容:

<compilation defaultLanguage="vb" debug="false" targetFramework="4.0"/>
<customErrors mode="On" defaultRedirect="~/error.html"/>

对于标准错误(例如不存在的页面崩溃/请求),它可以正常工作,显示我的自定义错误页面。但是,它在以下特定请求上失败并公开调试信息:

https://mywebsite/Page.aspx?error=<iframe>

如何捕获所有案例,包括这些案例?

返回的错误页面是:

Server Error in '/' Application.

Runtime Error 

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>
4

1 回答 1

3

顺便说一句,如果您使用的是 IIS 7

考虑以下事项:

1.)<httpErrors>

<httpErrors>在 IIS 本身中配置错误页面,在 Web 应用程序之外。这会处理所有请求,无论它们实际上是由 ASP.NET 还是由 IIS 本身处理的。

例如。:

<httpErrors errorMode="Custom" existingResponse="Replace">
  <clear />
  <error statusCode="500" path="/Errors/500.aspx" responseMode="ExecuteURL"/>
  <error statusCode="404" path="/Errors/404.aspx" responseMode="ExecuteURL"/>
</httpErrors>

2.) 使用HttpResponse.TrySkipIisCustomErrors属性获取或设置一个值,该值指定是否禁用 IIS 7.0 自定义错误。

TrySkipIisCustomErrors 属性仅在您的应用程序托管在 IIS 7.0 中时使用。在 IIS 7.0 中以经典模式运行时,TrySkipIisCustomErrors 属性默认值为 true。在集成模式下运行时,TrySkipIisCustomErrors 属性默认值为 false。

于 2012-11-06T14:51:31.183 回答