2

我有自定义 404.htm 的 asp.net 站点。它配置了 customErrors 部分来处理 aspx。

<customErrors mode="On" defaultRedirect="404.htm">
<error statusCode="403" redirect="404.htm" />
<error statusCode="404" redirect="404.htm" />
</customErrors>
<system.webServer>
<httpErrors>
<error statusCode="404" path="404.htm" />
<error statusCode="500" path="404.htm" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"> ...
</system.webServer>

它很好地处理了 wrongname.aspx。但是对于非 aspx 请求,例如 wrongname.htm IIS7 仍然返回一般错误消息,而不是我的自定义。例如,对于这个站点的所有错误,包括 500,如何强迫他这样做?我应该写一个模块还是可以声明式的?

4

3 回答 3

0

您可以通过网站的 IIS 设置为大多数 HTTP 错误设置自定义错误页面。(在 IIS 5 中,这是“属性”->“自定义错误”选项卡,不确定在哪里可以找到 IIS7)

于 2009-11-11T09:12:44.727 回答
0

为了让自定义 404 应用适当的 IIS 位,必须设置以处理您正在使用的扩展。

对于 IIS7 中的集成管道,我认为(尽管 IIS7 使人的生活变得有趣)默认是处理所有扩展。

首先检查您的应用程序是在 Classic 还是 Integrated 中运行 - 如果是前者,那么这将是问题的一部分,如果是后者......我每次都必须解决这个问题(我做得不够)。

于 2009-11-11T09:15:19.070 回答
0

在本地测试时,iis7 将倾向于向您显示一般错误消息,除非您将属性添加到httpErrors, errorMode="Custom"。您需要进行编辑C:\Windows\System32\inetsrv\config\applicationHost.config以允许这样做。

于 2010-01-07T19:01:58.603 回答