MVC asp.net на лазурной - проблема с customErrors - PullRequest
3 голосов
/ 22 ноября 2011

Я несколько дней бился головой об это, никуда не деться.Я хочу иметь обработчик ошибок всех перехватов, который перенаправляет на контроллер, который отображает аккуратную страницу для пользователя, а также делает соответствующие журналы и тому подобное.

Дело в том, что локально все работает нормально, но когда я загружаю в Azure, я получаю стандартные страницы ошибок.

Кажется, что Azure не выполняет перенаправление и игнорирует глобальныетакже обработчик в global.asax.

Я не включил здесь код для контроллера ошибок, так как кажется, что я никогда не захожу так далеко.

Web.Config:

<customErrors mode="On" defaultRedirect="/error" redirectMode="ResponseRewrite"></customErrors>

Запись маршрута:

routes.MapRoute("Error", "error/{*fluff}", new { controller = "Error", action = "Index", exception = new HttpException(404,"Direct call to controller") });

Из global.asax:

protected void Application_Error(object sender, EventArgs e)
{
    var routeData = new RouteData();

    routeData.Values["controller"] = "Error";
    routeData.Values["action"] = "index";
    routeData.Values["exception"] = Server.GetLastError();

    Response.Clear();
    Server.ClearError();

    IController controller = new ErrorController();
    controller.Execute(new RequestContext(new HttpContextWrapper(((MvcApplication)sender).Context), routeData));
}

Ответы [ 2 ]

5 голосов
/ 16 декабря 2011

это сделал трюк:

Response.TrySkipIisCustomErrors = true;
4 голосов
/ 22 ноября 2011

Попробуйте установить для существующего отклика значение PassThrough, например:

 <httpErrors existingResponse="PassThrough"/>

Источник: http://blog.dezfowler.com/2010/09/aspnet-custom-error-not-shown-in-azure.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...