Włącz niestandardowe błędy na platformie Azure

Nie mogę ustawić usług IIS, aby obsługiwały moje niestandardowe strony błędów w poszukiwaniu błędów poza potokiem MVC. Jeśli wrzucę wyjątek do kontrolera, to cały plik, zdarzenie Application_Error obsługuje to:

<code>    protected void Application_Error(object sender, EventArgs e)
    {
        var error = Server.GetLastError();

        var routeData = new RouteData();
        routeData.Values["Controller"] = "Error";
        routeData.Values["Area"] = "";
        routeData.Values["Exception"] = error;

        if (error is HttpException)
        {
            switch (((HttpException)error).GetHttpCode())
            {
                case 401:
                    routeData.Values["Action"] = "NotAllowed";
                    break;

                case 403:
                    routeData.Values["Action"] = "NotAllowed";
                    break;

                case 404:
                    routeData.Values["Action"] = "NotFound";
                    break;
                default:
                    routeData.Values["Action"] = "ServerError";
                    break;
            }
        }
        else
        {
            routeData.Values["Action"] = "ServerError";
        }

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

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

Jeśli jednak przejdę do nieistniejącego adresu URL, IIS obsłuży błąd 404 (lub dowolny inny błąd), dając mi standardowy komunikat o błędzie IIS i całkowicie ignorując moje ustawienia web.config:

<code> <system.web>
  <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/error">
    <error statusCode="401" redirect="/error/notallowed" />
    <error statusCode="403" redirect="/error/notallowed" />
    <error statusCode="404" redirect="/error/notfound" />
    <error statusCode="500" redirect="/error/servererror" />
  </customErrors>
</system.web>

<system.webServer>
  <httpErrors errorMode="Custom" defaultResponseMode="ExecuteURL">
    <clear />
    <error statusCode="401" path="/error/notallowed" />
    <error statusCode="403" path="/error/notallowed" />
    <error statusCode="404" path="/error/notfound" />
    <error statusCode="500" path="/error/servererror" />
  </httpErrors>
</system.webServer>
</code>

/ error / * jest obsługiwane przez kontroler w mojej aplikacji. Co mogę zrobić, aby IIS wykonał niestandardową ścieżkę błędu, zamiast podawać mi standardową stronę błędu?

To jest ASP.NET MVC 3, działający na platformie Azure. Nie działa również w przypadku zwykłych usług IIS, ale serwer deweloperski uruchamia kontroler.

questionAnswers(4)

yourAnswerToTheQuestion