我正在IIS 7.5上部署MVC3应用程序。
有一些错误只发生在IIS 7.5上,我正在尝试调试它们。但是,每当触发错误时,都会显示默认的error.cshtml。
是否可以显示详细的错误消息,类似于在Visual Studio 2010中处理错误的方式?
使用OnHandleError属性时,如何将异常详细信息传递给error.cshtml?
答案 0 :(得分:32)
您的Error.cshtml
视图应接受HandleErrorInfo
类型的模型。您可以从Model.Exception
属性中获取异常详细信息。
例如,您的视图可能如下所示:
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = "Uh-oh, an error occurred/";
}
<h2>One of us broke the site!</h2>
@if (Model != null)
{
<h3>@Model.Exception.GetType().Name</h3>
<pre>
@Model.Exception.ToString()
</pre>
<p>
thrown in @Model.ControllerName @Model.ActionName
</p>
}
答案 1 :(得分:3)
如果这是出于调试目的,您可以在web.config中关闭自定义错误或设置为远程,以便在调试时查看详细信息。
答案 2 :(得分:2)
您还可以将其包装在一个检查中,以确保打开调试并始终将其显示在HTML注释中(因此浏览网站的任何人都无法清楚地看到它)。 E.g
@if (System.Web.HttpContext.Current.IsDebuggingEnabled)
{
<!--
<P>@Model.Exception.ToString()</P>
-->
}