J'ai un site Web ASP.Net et je veux utiliser une page d'erreur personnalisée. Je mets le code suivant dans mon web.config
<customErrors mode="On" defaultRedirect="~/error.aspx">
<error statusCode="404" redirect="~/error.aspx" />
</customErrors>
Le problème est que lorsque je vais à une URL qui n'existe pas, j'utilise toujours la page d'erreur 404 spécifiée dans IIS Manager.
Question: Comment puis-je lui faire utiliser la page error.aspx que j'ai créée? Pourquoi les paramètres de IIS Manager remplacent-ils le fichier web.config?
Essayez de cette façon, presque pareil… mais c'est ce que j'ai fait et travailler.
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="apperror.aspx">
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>
</system.web>
</configuration>
ou essayez de modifier la page d'erreur 404 à partir de IIS, si nécessaire de toute urgence.
Il existe 2 façons de configurer des pages d'erreur personnalisées pour les sites ASP.NET:
Cet article explique comment faire chacun:
La raison pour laquelle votre page {error.aspx _ ne s'affiche pas peut-être à cause d'une erreur dans votre web.config. Essayez ceci à la place:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
Vous devrez peut-être vous assurer que Error Pages
dans IIS Manager - Délégation de fonctions est défini sur lecture/écriture:
Cette réponse peut également vous aider à configurer le fichier web.config:
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
Le code ci-dessus est uniquement pour "Erreur de page non trouvée-404" si l'extension du fichier est connue (.html, .aspx, etc.)
A côté de cela, vous avez également défini les erreurs client pour les extensions inconnues ou incorrectes.
.aspwx
ou .vivaldo
. Vous devez ajouter des paramètres httperrors
dans web.config
<httpErrors errorMode="Custom">
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
il doit être à l'intérieur du <system.webServer>
</system.webServer>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>