Обработка исключений Application_Start в среде IIS7 - PullRequest
3 голосов
/ 02 апреля 2012

Я создаю приложение ASP.NET MVC3, и в дополнение к стандартному механизму обработки исключений MVC я хочу показать статическую страницу ошибки html, когда что-то пошло не так в Application_Start и возникло необработанное исключение.1002 * Я только что добавил

    <customErrors mode="On" defaultRedirect="Error.htm">

и ожидал перенаправления в Error.htm во всех случаях "ошибки".Он правильно работает с Visual Studio Development Server, но совсем не работает с IIS7 (я вижу стандартный желтый экран с надписью «Чтобы детали этого конкретного сообщения об ошибке можно было просматривать на ...»).Похоже, что при возникновении исключения в Application_Start ASP.NET перенаправляет на Error.htm и в этот момент IIS снова вызывает метод Application_Start, где это же исключение снова вызывает aaa и приветствует бесконечный цикл.

Какие есть варианты решения этой проблемы?Можно ли это сделать без изменения настроек IIS?Если нет, то как это должно быть правильно сделано на стороне IIS?

1 Ответ

0 голосов
/ 28 декабря 2012

Лучше поздно, чем никогда.Это стандартный способ обработки ошибок:

testproject \ Views \ Shared \ Error.cshtml

@model System.Web.Mvc.HandleErrorInfo
@{
    ViewBag.Title = "Error";
}
<p>an error occurred</p><br />
<p>Try again.Go on this <a href="javascript:history.go(-1)">link</a></p>

testproject \ Controllers \ TestController.cs

namespace testproject.Controllers
{
    [HandleError]
    public class TestController : Controller
    {}
}

testproject\ Web.config

<system.web>
    <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml" />   
</system.web>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...