在IIS 7.5上托管MVC应用程序时显示完整的错误消息

时间:2011-07-19 15:25:58

标签: asp.net-mvc-3 iis-7.5

我正在IIS 7.5上部署MVC3应用程序。

有一些错误只发生在IIS 7.5上,我正在尝试调试它们。但是,每当触发错误时,都会显示默认的error.cshtml。

  1. 是否可以显示详细的错误消息,类似于在Visual Studio 2010中处理错误的方式?

  2. 使用OnHandleError属性时,如何将异常详细信息传递给error.cshtml?

3 个答案:

答案 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>
  -->
}