我的自定义错误消息被覆盖

时间:2011-08-09 20:57:55

标签: c# asp.net iis-7 http-status-codes

所以我有一个用C#编写的用于ASP.NET的网页,在某些情况下它会返回一个自定义错误。

例如,有一点可能是:

Response.StatusCode = 400;
Response.Status = "A long custom error message here.";
Response.Write(Resonse.Status);

当我在本地打开它(通过http://mymachinename/foo/bar.aspx)时,我看到了自定义错误消息。当我将它部署到远程服务器时,我只看到我的自定义错误消息被文本“错误请求”覆盖(这就是全部)。它必须是一些配置,但我找不到它。

3 个答案:

答案 0 :(得分:3)

检查您是否在web.config中定义了httpErrors属性。

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>

答案 1 :(得分:1)

服务器可以拥有自己的配置文件,其中包含您提到的错误代码。例如,编辑apache服务器上的.htaccess文件将允许您将自己的错误页面链接到异常,或者您可以自己写入标记以节省一些时间。

<强>更新

您也可以

Response.TrySkipIisCustomErrors 

如果您使用的是IIS。

其他信息

http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

答案 2 :(得分:0)

其他人提供的解决方案完全有效,但我认为您也可以从IIS管理器控制它,如果有一个定义的错误页面包含代码400,打开您的IIS管理器,转到.Net错误页面,看看对于错误代码400,单击右侧面板上的编辑功能设置,然后在打开的编辑错误页面设置窗口中选择关闭。