【发布时间】:2011-10-04 09:23:29
【问题描述】:
我正在尝试将自定义错误页面添加到我的 Web 应用程序。到目前为止,我已将此添加到我的 web.config 文件中的元素下:
<customErrors mode="On" >
<error statusCode="404" redirect="~/404.aspx"/>
<error statusCode="500" redirect="~/500.aspx"/>
</customErrors>
这适用于 .NET 涉及的错误,例如包含 .aspx 扩展名的 url。但是,我还希望为诸如 www.example.com/dasda 之类的 url 显示自定义错误
目前,当我请求诸如上述 IIS 7.5 之类的页面时,会显示它自己的错误消息。我在元素下添加了这个:
<httpErrors >
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="~/404.aspx" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" path="~/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
我认为这会使 IIS 显示自定义错误页面,而不是默认页面,但事实并非如此。
我知道我可以在 IIS 本身中设置自定义错误页面,但我的情况的理想解决方案是在 web.config 中进行配置。
我已尝试按照here 的建议将其添加到 Page_Load 事件的自定义错误页面中:
Response.TrySkipIisCustomErrors = true;
但是,它并没有阻止默认 IIS 页面代替我的自定义错误页面显示。我也试过here的建议:
<httpErrors >
<remove statusCode="404" subStatusCode='-1' />
<error statusCode="404" path="~/404.aspx" prefixLanguageFilePath='' responseMode="Redirect" />
<remove statusCode="500" subStatusCode='-1' />
<error statusCode="500" path="~/500.aspx" prefixLanguageFilePath='' responseMode="Redirect" />
</httpErrors>
但这也没有奏效。
那么有没有办法通过在 web.config 文件中配置设置来防止 IIS 显示默认错误页面?
【问题讨论】:
标签: c# web-applications webforms iis-7.5