我创建了一个名为404.aspx的404错误页面,当我手动调用它时效果很好。 但在web.config和IIS 6.0中设置“自定义错误”后。它无法正常工作。
例如,如果我以错误的方式输入网址,它将无效,并显示如下所示的消息。
XML Parsing Error: not well-formed
Location: **http://domain/anything** (without an extension)
Line Number 1, Column 2:<%@ page language="C#" masterpagefile="~/Public.master" autoeventwireup="true" inherits="_404, App_We
而且,如果我输入这样的网址: http://domain/anything.ASPX(添加.ASPX),它会正确地重定向到自定义错误404.aspx并且工作正常。
我可以做些什么来完成这项工作?
答案 0 :(得分:7)
听起来您已将IIS自定义错误页面类型设置为File
而不是Url
。
设置为File
只会导致IIS将错误页面的内容逐字呈现到响应流(即作为静态文件),而不是将HTTP重定向到错误页面,从而导致页面被处理通过ASP.NET。
如果使用URL消息类型,IIS 6要求输入“站点内的绝对URL”,例如:
/404.aspx
答案 1 :(得分:2)
我假设您的语法如下:
<customErrors
mode="RemoteOnly"
defaultRedirect="~/errors/GeneralError.aspx"
/>
要查看自定义页面,请将模式设置为“开启”
<customErrors
mode="On"
defaultRedirect="~/errors/GeneralError.aspx"
/>
模式定义如下: