web-dev-qa-db-fra.com

Comment IIS 7.5 peut-il réinitialiser les pages d'erreur d'un site sur la configuration par défaut?

Un incident survenu avec web.config a été effectué pour prendre en charge un sous-site existant. Je me suis servi de “<location path="." inheritInChildApplications="false">”. Il s’agissait essentiellement d’une solution de contournement mise en place pour les fichiers Web.config imbriqués qui était à l’origine d’un conflit. Le résultat était que les pages d'erreur n'étaient pas traitées correctement. L'erreur 500 était transmise au client pour chaque type d'erreur rencontré.

La suppression de la balise inheritInChildApplications incriminée de la racine web.config a restauré les opérations normales de la plupart des opérations de traitement des erreurs, mais pour une raison quelconque, l’erreur 503 correspond à un en-tête de réponse correct, mais le serveur IIS effectue les actions personnalisées suivantes: erreur 403.4 qui est une redirection vers https.

Je cherche à restaurer les valeurs par défaut pour les pages d'erreur afin que le comportement soit à nouveau restauré. Je peux alors rajouter des personnalisations pour les pages d'erreur.

2
Sn3akyP3t3

J'ai été capable de réinitialiser beaucoup de valeurs de mon site en utilisant appcmd, mais je devais creuser dans des configurations spécifiques que je voulais changer, ce que je vais décrire un peu plus bas. Je sais pour sûr que cela fonctionne avec IIS 7, mais je ne suis pas sûr à 100% s'il est passé à 7.5, donc YMMV.

appcmd n'est pas dans le chemin de ma commande sur aucune de mes installations (bien que ces machines soient 2k8sp2) - de toute façon, à partir de cmd Demander en tant qu'administrateur:

cd% windir%\system32\inetsrv

puis pour obtenir une belle série d’exemples, tapez:

appcmd réinitialiser config /?

et pour voir quels paramètres vous voulez réinitialiser, tapez:

appcmd reset config/section :?

La section:? va vous donner un gros dump, alors je l’ai vidé dans un fichier texte pour mes besoins personnels. Vous allez vous retrouver avec tous les éléments de configuration dans les espaces de noms system.web, system.webServer, system.net et une poignée d'autres.

La commande que j'ai finalement utilisée (je devais réinitialiser mes httpErrors) est la suivante:

appcmd reset config/section: httpErrors

J'espère que c'est utile! Plus d'informations sur appcmd ici: sur le site Microsoft TechNet

3
Ejoso

Les répertoires imbriqués peuvent avoir leur propre fichier web.config, mais comme pour les fichiers CSS, les règles que vous définissez en cascade sont conservées.

Pour les sous-répertoires avec leurs propres paramètres web.config, la meilleure pratique consiste à:

  1. Remplacez les règles que vous avez définies dans le fichier racine web.config en les définissant comme étant désactivées ou sur la valeur dont vous avez besoin.
  2. Utilisez des applications (similaires aux répertoires virtuels) au lieu des répertoires réels. Les applications n'hériteront pas des règles parent.
0
Frank