【问题标题】:Enable Yellow Screen of Death on MVC 3在 MVC 3 上启用黄屏死机
【发布时间】:2011-06-24 02:40:45
【问题描述】:

我不得不从另一个开发人员那里接手一个 MVC 3 项目。他做的第一件事就是停止黄屏死机,以便所有异常都只记录到文件中。您现在只会收到一条通用消息,说明发生了错误。

我想重新打开它(因为必须一直检查日志文件真的很烦人) - 我该怎么做。

我检查了 web.config,但看不到发生这种情况。

我确实尝试过执行 customerrors=off,但这并没有做任何事情。还去掉了全局错误处理属性,什么也没做。

进一步澄清,如果控制器中发生异常,我确实会得到黄屏死机,但如果它发生在(剃刀)视图中,我只会得到标准的通用错误。

你可以看到web.config here 可以看到global.asax here

【问题讨论】:

  • 我的猜测是他实现了一个全局异常处理程序。如果这就是他所做的,您需要做的就是解开处理程序,然后您应该恢复黄屏。你可以在这里阅读:developer.com/net/asp/article.php/961301/…
  • 我检查了 - global.asax 中没有注册全局异常处理程序

标签: asp.net-mvc-3 yellow-screen-of-death


【解决方案1】:

这个问题有点老了,但也许这会对某人有所帮助。除了设置<customerErrors mode="Off" />,还要在<system.webServer>下设置这个:<httpErrors errorMode="Detailed" />

<system.webServer>
   <httpErrors errorMode="Detailed"/>
</system.webServer>

【讨论】:

  • 谢谢,这对我很有帮助
【解决方案2】:

通常您在 web.config 中 customErrors 元素的 system.web 下进行设置。 只需尝试设置 mode=Off:

<customErrors mode="Off" />

【讨论】:

    【解决方案3】:

    Global.asax 中,您可以从public static void RegisterGlobalFilters(GlobalFilterCollection filters) 中删除filters.Add(new HandleErrorAttribute());

    正如 cmets 中所指出的 - 问题在于覆盖 OnException 方法的自定义基础控制器。

    【讨论】:

    • 你能粘贴你的 web.config 和 Global.asax 吗?
    • @Jaco,好的,引发异常的动作是什么样的?
    • 这不是引发异常的动作。我现在实际上检查了它 - 如果一个动作引发异常,我确实得到 YSOD,但如果视图中发生错误,它会失败......
    • @Jaco,您的意思是运行时异常?如果您单步执行 View,它会在哪里出现错误?
    • 是的,它应该显示一个错误页面。您的 Controller 是否派生自某个自定义类,该类对 OnActionExecuting 或任何这些执行方法有任何覆盖?
    【解决方案4】:

    这些都不适合我。检查是否有人添加了代码来清除应用程序错误事件处理程序中的错误。

        protected void Application_Error(object sender, EventArgs e)
        {
            Exception lastException = Server.GetLastError().GetBaseException();
    
            Log.Error("Global.asax: WebApplication error", lastException);
    
            //****Server.ClearError();
        }
    

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 2011-07-23
      • 1970-01-01
      • 2011-05-14
      • 2012-10-27
      • 2011-01-21
      • 2010-09-06
      • 1970-01-01
      • 2014-03-12
      相关资源
      最近更新 更多