IIS7上针对nonasp.net URL的ASP.net站点的自定义404页面

时间:2009-11-11 09:02:45

标签: iis-7 custom-errors

我有自定义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?我应该编写一个模块,还是可以以声明方式编写?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

首先检查你是否已经在Classic或Integrated中运行应用程序 - 如果前者那么将成为问题的一部分,如果是后者......我必须每次都这样做(我没有做得够好。)

答案 2 :(得分:0)

在本地测试时,除非您向httpErrorserrorMode="Custom"添加属性,否则iis7会向您显示一般错误消息。您需要修改C:\Windows\System32\inetsrv\config\applicationHost.config以允许此操作。