Internet Information Services (IIS) Manager. Bad Data. (Exception from HRESULT: 0x80090005)

Symptômes:

Lorsque vous accédez à la console IIS ou aux pools d’applications, vous avez l’erreur suivante:

Bad Data. (Exception from HRESULT: 0x80090005)

Causes:

Vous avez copié le fichier de configuration de IIS d’une machine à l’autre (C:\Windows\System32\inetsrv\config\applicationHost.config)

Ce dernier contient des comptes Windows pour certains pools d’applications. Le mot de passe est encrypté en utilisant une clé locale à la machine, l’autre serveur n’arrive donc pas à les décrypter.

Corriger le mot de passe à la main depuis la console IIS ne résous pas le problème.

Résolution:

2 possibilités:

  • Faire un retour arrière sur le serveur où la configuration a été copiée. Par défaut IIS garde une copie des 10 derniers fichiers de configuration (C:\inetpub\history)
  • Utiliser la méthode supportée pour copier la configuration.

Exporter la configuration:

aspnet_regiis -px "iisConfigurationKey" "C:\iisConfigurationKey.xml" -pri 
aspnet_regiis -px "iisWasKey" "c:\iisWasKey.xml" –pri

Importer sur la cible:

aspnet_regiis -pi "iisConfigurationKey" "C:\iisConfigurationKey.xml" 
aspnet_regiis -pi "iisWasKey" "C:\iisWasKey.xml"

IIS 7 : SSL sur Server Core, Browsing de répertoire virtuel

Voici quelques infos utiles sur IIS 7…

Administrer IIS7 depuis Vista

Il faut :

  • Télécharger la console sur iis.net (qui appartient à Microsoft, équipe produit IIS): http://www.iis.net/expand/IISManager
  • Installer la gestion à distance sur le serveur: start /w ocsetup IIS-ManagementService
  • Passer la clé de registre EnableRemoteManagement à 1 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server) sur le serveur pour autoriser la gestion à distance
  • Démarrer le service de gestion Web: net start wmsvc

Il ne reste plus qu’à lancer l’interface de gestion depuis Vista et se connecter

Importer un certificat SSL

La console mmc des certificats ne permet pas d’importer un certificat sur un hôte distant. Quand il s’agit d’un server Core, il faut passer en ligne de commande:

certutil -addstore MY moncertificat.pfx

MY correspondant au magasin personnel de l’ordinateur.

Browsing de répertoire virtuel

La configuration était pas tout à fait standard. Plusieurs sites sont déclarés sur IIS, et il y a un site « central » qui dont des répertoires virtuels pointent sur ces sites en webdav, pour les mettre à jour.

Un changement surprenant au départ est que la configuration entre le site et le sous répertoire virtuel est partiellement partagée. Une modification sur l’un impacte l’autre, au moins pour les pages par défaut si les deux sont local et non hérité/local !

J’ai dû laisser la configuration des pages par défaut héritée sur le site, et locale sur le répertoire virtuelle (ce cas là fonctionne). Bien que .Net soit désactivé sur le site « central », IIS essayait d’exécuter default.aspx dans le répertoire virtuelle sans succès, renvoyant un 404 (pratique pour diagnostiquer!). J’ai résolu le problème en vidant le menu des pages par défaut sur les répertoires virtuels.