web-dev-qa-db-fra.com

Modification directe IIS 7 fichier de configuration applicationHost.config

Je sais que IIS 7+ utilise maintenant des fichiers de configuration XML au lieu de la métabase. Je sais également que si je modifie un fichier web.config pour un site donné, IIS détecte automatiquement les modifications et implémente toutes les modifications de configuration correspondantes.

Cependant, cela s'applique-t-il également au fichier de paramètres applicationHost.config au niveau du serveur? (Il se trouve généralement dans C:\windows\system32\inetsrv\config.) Plus précisément, est-il prudent de modifier soigneusement ce fichier au lieu d'utiliser IIS Manager ou l'utilitaire de ligne de commande appcmd? Je n'ai rien trouvé dans la documentation qui disait que c'était bien ou pas bien de faire ça.

Je suis curieux car je dois changer les liaisons pour de nombreux sites d'une IP à l'autre. Il serait beaucoup plus rapide de simplement effectuer une recherche globale et de remplacer l'adresse IP dans le fichier de configuration au lieu de modifier manuellement quelques dizaines de sites dans l'interface graphique.

38
lunadesign

Vérifiez également cette réponse à partir d'ici: Impossible de modifier manuellement applicationhost.config

La réponse est simple, sinon évidente: win2008 est 64 bits, notepad ++ est 32 bits. Lorsque vous accédez à Windows\System32\inetsrv\config à l'aide de l'Explorateur, vous utilisez un programme 64 bits pour rechercher le fichier. Lorsque vous ouvrez le fichier à l'aide de notepad ++, vous essayez de l'ouvrir à l'aide d'un programme 32 bits. La confusion se produit car, plutôt que de vous dire que c'est ce que vous faites, Windows vous permet d'ouvrir le fichier mais lorsque vous l'enregistrez, le chemin d'accès au fichier est mappé de manière transparente à Windows\SysWOW64\inetsrv\Config.

Donc, en pratique, ce qui se passe est d'ouvrir le fichier applicationhost.config à l'aide de notepad ++, d'apporter une modification, d'enregistrer le fichier; mais plutôt que d'écraser l'original, vous en enregistrez une copie 32 bits dans Windows\SysWOW64\inetsrv\Config, par conséquent, vous ne modifiez pas la version actuellement utilisée par IIS. Si vous accédez à Windows\SysWOW64\inetsrv\Config, vous trouverez le fichier que vous venez d'enregistrer.

Comment contourner cela? Simple - utilisez un éditeur de texte 64 bits, tel que le bloc-notes normal livré avec Windows.

51
Markive

Plus précisément, est-il prudent de modifier soigneusement ce fichier au lieu d'utiliser IIS Manager ou l'utilitaire de ligne de commande appcmd?

Oui! Vous pouvez modifier le fichier applicationhost.config directement si vous êtes administrateur sur la machine; c'est tout ce que font également les outils d'administration.

Si vous rencontrez des problèmes, au moins 20 minutes de sauvegardes de configuration sont stockées dans \ inetpub\history par défaut.

9
TristanK

Vous trouverez une belle introduction au fichier applicationHost.config sur IIS.NET . Il y a aussi un Référence complète pour tous les éléments du schéma de configuration IIS.

C'est assez bien documenté en fait :-)

3
Mathias R. Jessen

Un autre élément utile à savoir: lorsque vous modifiez manuellement le fichier applicationHost.config (comme le font les outils), seules les applications dont vous avez modifié la configuration seront recyclées. IIS prend en fait un instantané de la configuration pour chaque application et ne la met pas à jour jusqu'à ce que quelque chose change pour cette application.

0
Peter