Recherche…


Introduction

Chaque site Web doit gérer les erreurs. Vous pouvez laisser vos utilisateurs voir les pages d'erreur 404 ou 500 stockées par IIS ou, à l'aide de Web.Config et d'un simple contrôleur, capturer ces erreurs et fournir vos propres pages d'erreur personnalisées.

Configuration de base

Cet exemple couvrira la création d'une page d'erreur personnalisée pour 404 Page Not Found et 500 Server Error. Vous pouvez étendre ce code pour capturer tout code d'erreur dont vous avez besoin.

Web.Config

Si vous utilisez IIS7 et supérieur, ignorez le noeud <CustomError.. et utilisez <httpErrors...

Ajoutez ce qui suit dans le nœud system.webServer :

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

Cela indique au site de diriger les erreurs 404 vers ~/error/notfound et toute erreur 500 vers ~/error/servererror . Il préservera également l'URL demandée (pensez à transférer plutôt qu'à rediriger ) pour que l'utilisateur ne voie jamais l'URL de la page ~/error/...

Ensuite, vous avez besoin d'un nouveau contrôleur d' Error afin ...

public class ErrorController : Controller
{
    public ActionResult servererror()
    {
        Response.TrySkipIisCustomErrors = true;
        Response.StatusCode = (int)HttpStatusCode.InternalServerError;
        return View();
    }

    public ActionResult notfound()
    {
        Response.TrySkipIisCustomErrors = true;
        Response.StatusCode = (int)HttpStatusCode.NotFound;
        return View();
    }

} 

L'essentiel à noter ici est le Response.TrySkipIisCustomErrors = true; . Cela contournera IIS et forcera votre page d'erreur à travers.

Enfin, créez les NotFound et ServerError correspondantes et ServerError -les en forme de manière à ce qu'elles soient parfaitement ServerError la conception de votre site.

Hey presto - pages d'erreur personnalisées.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow