Habilitar errores personalizados en Azure

No puedo configurar IIS para que sirva mis páginas de error personalizadas para errores fuera de la canalización de MVC. Si lanzo una excepción dentro de un controlador, todo es un archivo, el evento Application_Error maneja eso:

<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>

Sin embargo, si navego hacia una URL inexistente, IIS manejará el error 404 (o cualquier otro error), dándome el mensaje de error estándar de IIS e ignorando completamente la configuración de 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 / * es manejado por un controlador dentro de mi aplicación. ¿Qué puedo hacer para que IIS ejecute la ruta de error personalizada, en lugar de enviarme la página de error estándar?

Esto es ASP.NET MVC 3, que se ejecuta en Azure. Tampoco funciona con IIS directo, pero el servidor de desarrollo ejecuta el controlador.

Respuestas a la pregunta(4)

Su respuesta a la pregunta