ASP.NET MVC 中的 500 内部服务器错误

30

我正在使用ASP.NET MVC开发,其中使用了partial views。但是当我点击特定链接时,出现了以下错误:

 

500 Internal Server Error

如何解决这个错误?


关闭浏览器中的友好错误消息并允许应用程序调试,然后告诉我们发生的错误,以便我们能更好地帮助您。 - Sev
2
这里关于如何让服务器返回更详细的错误信息的建议可能会有所帮助:https://dev59.com/QW435IYBdhLWcg3wfQJ9 - Jon Schneider
4个回答

64

要检查 ASP MVC 中导致内部服务器 500 错误的原因,您还可以在调试模式下运行应用程序并检查 AllErrors 属性。
该属性是一个 Exception 类型元素的数组。

为此,请打开 Global.asax.cs(C#),并在 MvcApplication 类的主体中放置 Application_EndRequest 方法:

protected void Application_EndRequest()
{   //here breakpoint
    // under debug mode you can find the exceptions at code: this.Context.AllErrors
}

然后设置断点并检查数组内容:this.Context.AllErrors

这有助于我解决抛出的异常,可选地查看堆栈跟踪。


1
太棒了!我曾尝试查看网络选项卡,但它从未给出详细的错误信息。它只是指出无法加载资源。这个解决方案指出我的视图模型构造函数存在问题。谢谢! - usr4896260
1
如果我将this.Context.AllErrors设置为null会怎样? - Hakan Fıstık
我尝试了这个解决方案,但出现了 Context.AllErrors = null 的错误。所以在更深入地查找后,我发现在我绑定到表单的模型中,我已经使用 "[MaxLength(6, ErrorMessage = "Pincode should be valid.")]" 装饰了其中一个整数属性,去除它之后,问题得到了解决。 - Snziv Gupta
我在哪里可以找到:this.Context.AllErrors - Riadh Saïd

7

500服务器错误是指脚本发生了错误,这不是一个损坏的链接(也就是404错误)。

如果您正在使用Internet Explorer,请转到工具 > 选项 > 高级并取消选择友好的http错误,这将为您提供更全面的错误描述,以便您可以调试脚本或联系相关人员进行调试。


5

我从Windows事件查看器(运行>eventvwr.msc>Windows日志>应用程序)中获取了关于错误的更多详细信息。请检查w3wp.exe记录的警告/错误。

在我的情况下,原因是缺少dll文件。希望这可以帮助到您。


从.NET Core升级到.NET 5.0在服务器上会导致500内部错误,并且经过一天的工作仍然毫无头绪,页面空白且即使将web.config中的customErrors设置为true也没有详细信息。通过在应用程序中找到的信息,发现有一个已知问题:https://docs.telerik.com/reporting/knowledge-base/binaryformatter-exception-after-upgrade-to-net5 - Naga

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接