1. Fehlersituation
Umgebung: win7+iis7.0
DirectoryEntry-Konfiguration IIS7 hat den folgenden Fehler
oder
Der folgende Code wird normal unter IIS6.0 ausgeführt, bei der Ausführung unter IIS7.0 tritt jedoch ein Fehler auf:
System.DirectoryServices.DirectoryEntry iisServer; iisServer = new System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1"); System.DirectoryServices.DirectoryEntry rootFolder = iisServer.Children.Find("Root","IIsWebVirtualDir");//此处抛出异常
Der Ausnahmeinhalt lautet wie folgt:
[System.Runtime.InteropServices.COMException] {"Unknown error (0x80005000)"}
System.Runtime.InteropServices.COMException
Unknown error (0x80005000)
at System.DirectoryServices. DirectoryEntry.Bind(Boolean throwIfFail)
bei System.DirectoryServices.DirectoryEntry.Bind()
bei System.DirectoryServices.DirectoryEntry.get_IsContainer()
bei System.DirectoryServices.DirectoryEntries.CheckIsContainer()
bei System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
2. Fehleranalyse
Dieser Ausnahmecode zeigt an, dass der ADSI-Anbieter von IIS://localhost/W3SVC /1 existiert nicht oder ist nicht zugänglich.
Öffnen Sie den IIS-Manager und Sie können sehen, dass der Localhost des Servers (d. h. die Standard-Site) existiert und ausgeführt wird und die Haupt-Site-ID tatsächlich 1 ist. Dies weist darauf hin, dass das Problem beim ADSI-Anbieter unter IIS://localhost liegt.
3. Ursache des Fehlers
Win7 verwendet IIS7 und IIS 7 hat standardmäßig keinen ADSI-Anbieter installiert.
4. Lösung
Um dieses Problem zu lösen, müssen Sie „IIS Metabase and IIS 6 Configuration Compatibility“ installieren.
"Systemsteuerung"->"Programme und Funktionen"->"Windows-Funktionen ein- oder ausschalten" auf der linken Seite des Bedienfelds->"Internetinformationsdienste"->"Webverwaltung Tools“ -> „IIS 6-Verwaltungskompatibilität“ -> „IIS-Metabasis und IIS 6-Konfigurationskompatibilität“.
Wie unten gezeigt:
5. Was soll ich tun, wenn dieser Fehler in Windows Server 2008 auftritt?
Unter Windows Server 2008 kann nach Verwendung des Rollendienstes zur Installation von „IIS-Metabasis und IIS 6-Konfigurationskompatibilität“ der folgende Fehler auftreten:
[System.Runtime.InteropServices.COMException ] { „Zugriff verweigert.rn“} System.Runtime.InteropServices.COMException
ErrorCode 0x80070005
Zugriff verweigert.
bei System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
bei System .DirectoryServices.DirectoryEntry.Bind()
bei System.DirectoryServices.DirectoryEntry.get_IsContainer()
bei System.DirectoryServices.DirectoryEntries.CheckIsContainer()
bei System.DirectoryServices.DirectoryEntries.Find(String name , String schemaClassName)
Dies liegt daran, dass Windows Server 2008 durch die Benutzerkontensteuerung (UAC) gesperrt ist. Sie müssen dieses Programm mit einem Administratorkonto (Administratorkonto) ausführen Das Programm verfügt über die folgenden Berechtigungen: „Anmeldung als Dienst“/ „Anmeldung als Batch-Job“
Die obige Methode ist die Methode zur Behebung des ADSI-Fehlers in der DirectoryEntry-Konfiguration IIS7, und im weiteren Sinne tritt dieses Problem unter Windows auf Server 2008 Eine Lösung für diesen Fehler. Ich hoffe, dass sie allen bei der Lösung dieser Art von Problem hilfreich sein wird.
Weitere verwandte Artikel zum Thema ADSI-Fehler: Unbekannter Fehler (0x80005000) in der DirectoryEntry-Konfiguration finden Sie hier die chinesische PHP-Website!