我刚刚将一个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错误处理?
答案 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项目添加详细的日志记录。
,包括:
答案 3 :(得分:0)
检查您的服务器是否为您的网站使用相同的配置文件(如果部署到网站目录的配置文件相同)