2017-03-13 6 views
0

J'essaie de créer des pages d'erreur personnalisées pour mon application et cela fonctionne pour la plupart, mais pas pour erreurs.ASP MVC 5 - 403 customError ne fonctionne pas

Mon Web.config:

<customErrors mode="On" defaultRedirect="~/Error"> 
    <error statusCode="404" redirect="~/Error/NotFound" /> 
    <error statusCode="500" redirect="~Error/InternalServer" /> 
    <error statusCode="403" redirect="~Error/Forbidden" /> 
</customErrors> 

J'ai un ErrorController qui déléguait ces demandes. Lorsque le 404 atteint, il affiche la page d'erreur personnalisée, mais pas 403. Je reçois la page par défaut IIS 403 - Forbidden même si j'ai défini une page d'erreur personnalisée pour cela. J'ai regardé autour et j'ai essayé d'utiliser <httpErrors> à la place qui semble juste me donner une page blanche à chaque fois.

Voici mon Global.asax si c'est une aide:

void Application_Error(object sender, EventArgs e) 
{ 
    Exception exc = Server.GetLastError(); 

    if (exc is HttpUnhandledException) 
    { 
     // Pass the error on to the error page. 
     Server.Transfer("ErrorPage.aspx?handler=Application_Error%20-%20Global.asax", true); 
    } 
} 

Répondre

2

U peut utiliser une nouvelle approche pour IIS 7+.

<httpErrors errorMode="Custom" existingResponse="Replace"> 
     <remove statusCode="403" /> 
     <remove statusCode="404" /> 
     <remove statusCode="500" /> 
     <error statusCode="403" path="/Error" responseMode="ExecuteURL" /> 
     <error statusCode="404" path="/Error/404" responseMode="ExecuteURL" /> 
     <error statusCode="500" path="/Error/500" responseMode="ExecuteURL" /> 
</httpErrors> 

Section httpErros dans la section system.webServer.

configuration IIS refence: https://www.iis.net/configreference/system.webserver/httperrors
Et question connexe: What is the difference between customErrors and httpErrors?