500 ASP.NET MVC中的内部服务器错误
500服务器错误意味着脚本发生了错误,这不是一个断开的链接(又名404错误)。
如果您使用的是Internet Explorer,请转至tools > options > advanced
并取消选择friendly http errors
,这会给您一个更全面的错误说明,以便您可以调试脚本或联系相关人员进行调试。
要检查在ASP MVC下导致内部服务器500错误的原因,您还可以在调试模式下运行您的应用程序并检查属性AllErrors。
该属性是Exception类型元素的数组。
为此开Global.asax.cs
(C#)和类MvcApplication
put方法Application_EndRequest
的身体:
protected void Application_EndRequest()
{ //here breakpoint
// under debug mode you can find the exceptions at code: this.Context.AllErrors
}
然后设置断点,检查数组的内容:this.Context.AllErrors
它帮助我解决抛出了什么异常,并可选择查看堆栈跟踪。
很好的答案!我试过检查网络标签,但它从来没有给我一个详细的错误。它只是说它没有加载资源。这个解决方案指出我的视图模型的构造函数存在一个问题。谢谢! – usr4896260 2017-03-06 15:15:32
如果我将'this.Context.AllErrors'设为null会怎么样? – 2017-07-29 07:37:17
我试过这个解决方案,但我得到this.Context.AllErrors = null ...所以更多挖掘后,我发现在我的模型,我必然形成我装饰整数属性之一“[MaxLength(6, ErrorMessage =“Pincode应该是有效的。”)]“删除后它对我来说工作得很好。 – 2017-10-04 12:00:49
虽然稍晚,但防伪令牌会阻止请求作为安全措施。
删除.cshtml和控制器中的所有这些防伪标签,为我删除了该错误。
但如果你想保持这些令牌成功使用此链接: - http://iamdotnetcrazy.blogspot.com/2013/08/how-to-solve-anti-forgery-token-could.html
我从Windows事件查看器(运行> eventvwr.msc> Windows日志>应用程序)的错误的详细信息。检查从w3wp.exe记录的警告/错误
在我的情况下,原因是遗漏dll。希望这会有所帮助
关闭浏览器中的友好错误消息,并允许在应用程序中进行调试,然后告诉我们错误,以便我们可以更好地帮助您。 – Sev 2010-06-08 09:34:52
这里建议让您的服务器返回更详细的错误信息可能会有所帮助:http://stackoverflow.com/q/5385714/12484 – 2016-06-07 13:37:10