1. Situation d'erreur
Environnement : win7 iis7.0
La configuration de DirectoryEntry IIS7 a l'erreur suivante
ou
Le code suivant s'exécute normalement sous IIS6.0, mais une erreur se produit lors de son exécution sous IIS7.0 :
System.DirectoryServices.DirectoryEntry iisServer; iisServer = new System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1"); System.DirectoryServices.DirectoryEntry rootFolder = iisServer.Children.Find("Root","IIsWebVirtualDir");//此处抛出异常
Le contenu de l'exception est comme suit :
[System.Runtime.InteropServices.COMException] {"Erreur inconnue (0x80005000)"}
System.Runtime.InteropServices.COMException
Erreur inconnue (0x80005000)
au niveau du système .DirectoryServices.DirectoryEntry .Bind(Boolean throwIfFail)
à System.DirectoryServices.DirectoryEntry.Bind()
à System.DirectoryServices.DirectoryEntry.get_IsContainer()
à System.DirectoryServices.DirectoryEntries.CheckIsContainer()
sur System .DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
2 Analyse des erreurs
Ce code d'exception indique que le fournisseur ADSI de IIS://localhost/W3SVC/. 1 n’existe pas ou n’est pas accessible.
Ouvrez IIS Manager et vous pouvez voir que l'hôte local du serveur (c'est-à-dire le site par défaut) existe et est en cours d'exécution, et que l'ID du site principal est bien 1. Cela indique que le problème vient du fournisseur ADSI sur IIS://localhost.
3. Cause de l'erreur
win7 utilise iis7 et IIS 7 n'a pas de fournisseur ADSI installé par défaut.
4. Solution
Pour résoudre ce problème, vous devez installer "Compatibilité de la métabase IIS et de la configuration IIS 6".
"Panneau de configuration"->"Programmes et fonctionnalités"->"Activer ou désactiver des fonctionnalités Windows" sur le côté gauche du panneau->"Services Internet"->"Gestion Web Outils"-> "Compatibilité de gestion IIS 6" -> "Compatibilité de la métabase IIS et de la configuration IIS 6".
Comme indiqué ci-dessous :
5. Que dois-je faire si cette erreur se produit dans Windows Server 2008 ?
Sous Windows Server 2008, après avoir utilisé le service de rôle pour installer « Compatibilité de la métabase IIS et de la configuration IIS 6 », l'erreur suivante peut se produire :
[System.Runtime.InteropServices.COMException ] { "L'accès est refusé.rn"} System.Runtime.InteropServices.COMException
ErrorCode 0x80070005
L'accès est refusé.
à System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
à System .DirectoryServices.DirectoryEntry.Bind()
à System.DirectoryServices.DirectoryEntry.get_IsContainer()
à System.DirectoryServices.DirectoryEntries.CheckIsContainer()
à System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
Cela est dû au fait que Windows Server 2008 est verrouillé par l'UAC (User Account Control). Vous devez exécuter ce programme avec un compte administrateur (Administrateur). Une autre façon consiste à configurer et à exécuter le compte de celui-ci. Le programme dispose des autorisations suivantes : Connexion en tant que service"/"Connexion en tant que tâche par lots"
La méthode ci-dessus est la méthode pour résoudre l'erreur ADSI dans la configuration DirectoryEntry IIS7, et par extension, ce problème se produit sous Windows. Server 2008 Ceci est une solution à cette erreur. J'espère que cela aidera tout le monde à résoudre ce genre de problème
Pour plus d'articles sur l'erreur ADSI : erreur inconnue (0x80005000) dans la configuration de DirectoryEntry, veuillez prêter attention au. Site Web chinois PHP !