【问题标题】:Custom error page not working in production自定义错误页面在生产中不起作用
【发布时间】:2016-03-11 08:00:16
【问题描述】:

我已经在我的 ASP 中实现了自定义 404 页面。 NET MVC 5 应用程序,起初我在本地主机上对其进行了测试,它运行良好。但是当我将设置移至发布配置并尝试在生产中对其进行测试时,自定义 404 页面消失了,出现了默认的 mvc 错误页面。我做错了什么?

Web.config

<system.webServer>
    <httpErrors errorMode="Custom" existingResponse="Replace">
        <remove statusCode="404" />
        <error statusCode="404" responseMode="ExecuteURL" path="/Error/Index" />
    </httpErrors>
</system.webServer>

控制器

public class ErrorController : BaseController
{
    public ActionResult Index(string id)
    {
        ViewModel vm = new ViewModel();

        Response.StatusCode = 404;

        return View("~/Views/..../Index.cshtml", vm);
    }
}

【问题讨论】:

  • 您使用的是哪个版本的 IIS?
  • 我运行的是 Windows Server 2012 R2,所以应该是 IIS 8.5
  • 我正在研究这个东西,同时我找到了this链接,你可以试试这个吗?
  • 我已经尝试过了,唯一有效的是从转换中删除 httpErrors 并将其保存在基本 web.cofing 文件中。我不知道为什么会这样,我已经将转换后的文件与基本 web.config 中具有 404 处理的版本进行了比较,它们是相同的。
  • 您在本地主机上使用哪个 Web 服务器?卡西尼、IISExpress 还是 IIS?以及哪个版本?根据我的经验,IIS httpErrors ExecuteURL 模式无法通过 MVC 路由,导致您在服务器上得到结果。但也许你的本地主机上有一些特定的配置(模块执行顺序?)可以解决这个问题。如果你能认出它对我来说可能会很有趣。

标签: asp.net asp.net-mvc custom-error-pages


【解决方案1】:

我记得它必须在&lt;system.web&gt; 下设置。应该是这样的。

 <customErrors mode="Off" defaultRedirect="/Error/Index">
  <error statusCode="404" redirect="/Error/Index" />
</customErrors>

因此,设置 mode="Off"mode="On" 将打开和关闭自定义错误页面。

【讨论】:

  • customErrorshttpErrors 是两个不同的野兽。 customErrors 处理 .Net 故障错误页面,而 httpErrors 适用于 IIS 默认错误页面。 customErrors 不包括不涉及 .Net 管道的情况,例如对静态资源的请求。
  • @Frédéric 优秀!!!作为一个错误的页面,我正在测试不涉及 .Net 管道的Default.aspx1。您的评论是唯一可以挽救我生命的东西!
【解决方案2】:

尝试将其添加到配置文件中

<customErrors mode ="on" defaultRedirect="">

</customErrors>

【讨论】:

    【解决方案3】:

    我也遇到过同样的问题。 代码在 Dev 而不是 Prod 中运行。

    删除线

    Response.StatusCode = 404; //REMOVE
    

    来自动作方法。它会起作用的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-13
      • 2013-03-06
      • 2012-07-24
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多