Подтвердить что ты не робот

Показать полные сообщения об ошибках при размещении приложения MVC на IIS 7.5

Я развертываю приложение MVC3 в IIS 7.5.

Есть некоторые ошибки, которые возникают только в IIS 7.5, и я пытаюсь их отладить. Однако всякий раз, когда возникает ошибка, отображается ошибка error.cshtml по умолчанию.

  • Можно ли показывать подробные сообщения об ошибках, похожие на то, как обрабатываются ошибки в Visual Studio 2010?

  • Как передать детали исключения в error.cshtml при использовании атрибута OnHandleError?

4b9b3361

Ответ 1

В вашем представлении 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>
}

Ответ 2

Если это предназначено для отладки, вы можете отключить пользовательские ошибки в вашем web.config или установить на удаленный доступ, чтобы просмотреть детали во время отладки.

Ответ 3

Вы также можете обернуть его в чек, чтобы убедиться, что отладка включена и всегда отображает ее в комментариях HTML (поэтому она не видна всем, кто просматривает сайт). Например

@if (System.Web.HttpContext.Current.IsDebuggingEnabled)

{
  <!--
  <P>@Model.Exception.ToString()</P>
  -->
}