我正在尝试为我的网站设置自定义错误页面(ASP.NET 4,集成管道)。
在本地计算机上一切正常,但.aspx
页面的自定义错误页面不会显示在共享主机上(我看到默认错误页面)。
如果我将redirectMode="ResponseRewrite"
更改为redirectMode="ResponseRedirect"
,一切都可以在本地和共享计算机上正常运行。
error.aspx
是一个真实文件,位于web.config
文件旁边(位于网站的根目录中)。网站没有Global.asax
个文件。
本地计算机运行IIS 7.5,我不使用路由(至少有意识地),共享主机告诉Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319
请您告诉我这种不同行为可能是什么原因,我该怎么做才能解决这个问题。
以下摘自我的web.config
文件:
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/error.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
<system.web>
<customErrors mode="On" defaultRedirect="error.aspx" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="~/error.aspx"/>
</customErrors>
<httpRuntime requestValidationMode="2.0" />
</system.web>
答案 0 :(得分:2)
在与托管服务提供商讨论之后,结果证明:
machine.config
禁用此类功能,因此无法正常工作。所以,永远不要低估提供商的数量。
答案 1 :(得分:1)
我的web.config中有以下注释:
对于IIS 7.5,使用errorMode =“Custom”;如果使用路由,请使用responseMode =“ExecuteURL”,否则使用responseMode =“Redirect”
只是不要问我解释,因为我不知道!我只是通过反复试验来解决它。