12
votes

HTTPERROR ne montrera pas les pages d'erreur personnalisées

J'ai ceci dans le Web.config: xxx

mais IIS montre toujours la page d'erreur intégrée.

Toutes idées? < / p>


0 commentaires

5 Réponses :


2
votes

Il semble que vous utilisiez une URL relative serveur, essayez de définir responsable = "exécuteur" , de MSDN .

ExecuteURL

sert de contenu dynamique (par exemple, un fichier .asp) spécifié dans le chemin attribut pour l'erreur personnalisée. Si La responsabilité est définie sur ExecuteURL, la La valeur du chemin doit être un serveur relatif URL. La valeur numérique est de 1.

redirection

redirige les navigateurs clients à une URL spécifié dans l'attribut chemin qui contient le fichier d'erreur personnalisé. Si La responsabilité est définie pour rediriger, le La valeur du chemin doit être une URL absolue. La valeur numérique est 2.


0 commentaires

6
votes

C'est comme ça que je l'utilise et cela m'efforce, il semble assez similaire, à l'exception des directives Substatustuscode et de l'exécuteur exécuté.

<httpErrors>
     <!--Remove inherited 500 error page setting -->
     <remove statusCode='500' subStatusCode='-1'/> 
     <!--Override the inherited 500 error page setting with the 'My500.html' as its path-->
     <error statusCode='500' subStatusCode='-1' prefixLanguageFilePath='' path='/My500.html' responseMode='ExecuteURL'/> 
</httpErrors>


0 commentaires

19
votes

Vous devrez peut-être également définir l'attribut existantRePonse dans l'élément HTTPersrors comme celui-ci:

<httpErrors errorMode="Custom" existingResponse="Replace">
  <clear />
      <error statusCode="404" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" />
  <error statusCode="500" prefixLanguageFilePath="" path="/ErrorHandler.aspx" responseMode="ExecuteURL" />
</httpErrors>


3 commentaires

C'est ce qui causait la question avec le dernier verger 1.4, Cheers.


@Kiquenet iis.net/configreference/system.webebserver/httprorors Pas sûr mais Auto résolu mon problème.


Attention à utiliser existanteResponse = "Remplacer" remplacera tous les retours. Par exemple, si vous appelez un webapi qui envoie un retour avec StatusCode = 404, cela remplacera la réponse, utilisez existanteResponse = "passthrough" de sorte qu'une réponse explicite passe.



0
votes

S'assurer que vous avez le paramètre de fonctionnalité approprié pour la redirection de la page d'erreur dans IIS. Pour vérifier cela, à partir de la page de pages d'erreur dans IIS Manager, cliquez sur Modifier les paramètres de la fonction et assurez-vous que les pages d'erreur personnalisées sont cochées si vous testez les redirections du serveur Web lui-même. Si vous testez à distance, vous pouvez laisser des erreurs détaillées pour les demandes locales et les pages d'erreur personnalisées des demandes distantes est cochée. Cela semble être l'option par défaut dans mon environnement de test.


0 commentaires

5
votes

Si vous utilisez ExecuteURL, le chemin de page d'erreur personnalisé doit être dans le même pool d'applications que l'application elle-même.

Pour des raisons architecturales, IIS 7.0 ne peut exécuter que l'URL si elle est située dans le même pool d'applications. Utilisez la fonction Redirection pour exécuter une erreur personnalisée dans un autre pool d'applications.


0 commentaires