无法在ASP.NET MVC网站中获取详细的错误信息

时间:2012-01-30 14:59:39

标签: asp.net asp.net-mvc error-handling

我刚刚将一个ASP.NET MVC 3应用程序部署到我们的登台服务器。每当发生错误时,我都无法获得详细的错误信息,即“黄色死亡屏幕”。相反,我只是得到一个简单的“抱歉,处理您的请求时出错”。消息。

我的Web.config 包括customErrors off,即:

<system.web>
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      ...
    </assemblies>
  </compilation>
  <customErrors mode="off"/>
</system.web>

在这种情况下,我确切地知道底层错误是什么。 (我忘了为存储过程设置权限。)但我真的想(重新)启用错误处理,以便我可以快速找到这些错误。当然,出于安全原因,我会在实际上线后将其删除。

还有哪些其他设置可以覆盖默认的ASP.NET错误处理?

4 个答案:

答案 0 :(得分:32)

<customErrors mode="Off"/>

“关闭”必须正确大写。

来自“Editing ASP.NET Configuration Files”:

  

案例灵敏度

     

因为标签必须是格式良好的XML,标签,   子标签和属性区分大小写。标记名称和属性   名称是驼峰式的,这意味着标签的第一个字符   name是小写的,后续任何连接的第一个字母   单词或单词是大写的。在大多数情况下,字符串属性值为   Pascal-case,表示第一个字符是大写字母和   任何后续连接词的第一个字母是   大写。例外是真和假,它们总是小写的。

记住孩子,你每天都学到新东西。即使你学到的东西是蹩脚的。

答案 1 :(得分:7)

您的HandleErrorAttribute文件中可能有Global.asax.cs个全局过滤器。删除该行。

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

答案 2 :(得分:2)

更好的长期解决方案可能是将Elmah添加到您的项目中,它会为您的Web项目添加详细的日志记录。

,包括:

  • 记录几乎所有未处理的例外情况。
  • 远程查看已重新编码的例外日志的网页。
  • 用于远程查看任何一个已记录异常的完整详细信息的网页,包括彩色堆栈跟踪。
  • 在许多情况下,即使关闭了customErrors模式,您也可以查看ASP.NET为特定异常生成的原始黄色死亡屏幕。
  • 发生时每个错误的电子邮件通知。
  • 日志中最近15个错误的RSS提要。

答案 3 :(得分:0)

检查您的服务器是否为您的网站使用相同的配置文件(如果部署到网站目录的配置文件相同)