Modification directe du fichier de configuration IIS 7 applicationHost.config

38

Je sais qu'IIS 7+ utilise désormais 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 les modifications de configuration correspondantes.

Toutefois, 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.) Spécifiquement, est-il prudent de modifier soigneusement ce fichier au lieu d'utiliser le Gestionnaire des services Internet ou l'utilitaire de ligne de commande appcmd? Je n'ai rien trouvé dans la documentation disant que c'était correct ou non acceptable de le faire.

Je suis curieux parce que je dois changer les liaisons pour de nombreux sites d'une adresse IP à une autre. Il serait beaucoup plus rapide de faire simplement 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.

lunadesign
la source

Réponses:

51

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

La réponse est simple, sinon aussi é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 survient parce que, 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, son chemin est mappé de manière transparente à Windows \ SysWOW64 \ inetsrv \ Config.

En pratique, vous ouvrez donc applicationhost.config à l'aide de Notepad ++, apportez une modification, enregistrez le fichier; mais plutôt que de remplacer l'original, vous enregistrez une copie 32 bits dans Windows \ SysWOW64 \ inetsrv \ Config. Par conséquent, vous ne modifiez pas la version réellement utilisée par IIS. Si vous accédez à Windows \ SysWOW64 \ inetsrv \ Config, vous trouverez le fichier que vous venez de sauvegarder.

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

Markive
la source
7
A sauvé mon bacon avec celui-ci ... quel problème étrange qui me faisait penser que je devenais fou. Merci!
brettwgreen
Cela ne semble plus être un problème dans Windows 10, il était donc terriblement déroutant que cela se produise sur nos machines Windows 7 et Windows Server 2012.
Dzyann
Merci, @Markive. C'est une question très déroutante à première vue.
Stunt Double de Moby le
9

Plus précisément, est-il prudent de modifier soigneusement ce fichier au lieu d'utiliser le Gestionnaire des services Internet 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 les outils d'administration.

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

TristanK
la source
Merci! Je ne sais pas pourquoi ils ne documentent pas cela plus.
lunadesign
3

Vous trouverez une belle introduction au fichier applicationHost.config sur IIS.NET . Il existe également une référence détaillée pour tous les éléments du schéma de configuration IIS.

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

Mathias R. Jessen
la source
0

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

Peter
la source
Selon stackoverflow.com/questions/8635884/… et les commentaires, un redémarrage complet est nécessaire.
Yoel halb