1. エラー状況
環境: win7+iis7.0
DirectoryEntry構成IIS7に次のエラーがあります
または
次のコードはIIS6.0では正常に動作しますが、実行するとエラーが発生しますIIS7.0 :
System.DirectoryServices.DirectoryEntry iisServer; iisServer = new System.DirectoryServices.DirectoryEntry("IIS://localhost/W3SVC/1"); System.DirectoryServices.DirectoryEntry rootFolder = iisServer.Children.Find("Root","IIsWebVirtualDir");//此处抛出异常
例外の内容は次のとおりです:
[System.Runtime.InteropServices.COMException] {"不明なエラー (0x80005000)"}
System.Runtime.InteropServices.COMException
不明なエラー (0x80005000) )
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_IsContainer()
at System.DirectoryServices.DirectoryEntries.CheckIsContainer()
DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
2. エラー分析
この例外コードは、IIS://localhost/W3SVC/1 の ADSI プロバイダーが存在しないか、アクセスできないことを示します。
IIS マネージャーを開くと、サーバーのローカルホスト (つまり、デフォルト サイト) が存在して実行されており、メイン サイト ID が実際に 1 であることがわかります。これは、IIS://localhost の ADSI プロバイダーに問題があることを示しています。
3. エラーの原因
win7 は iis7 を使用しており、IIS 7 にはデフォルトで ADSI プロバイダーがインストールされていません。
4. 解決策
この問題を解決するには、「IIS メタベースと IIS 6 構成の互換性」をインストールする必要があります。
「コントロール パネル」->「プログラムと機能」->パネル左側の「Windows の機能のオンまたはオフ」->「インターネット インフォメーション サービス」->「Web 管理ツール」-> ;「IIS 6 管理の互換性」 -> 「IIS メタベースと IIS 6 構成の互換性」。
下の図に示すように:
5. Windows Server 2008 でこのエラーが発生した場合はどうすればよいですか?
Windows Server 2008 では、役割サービスを使用して「IIS メタベースおよび IIS 6 構成の互換性」をインストールした後、次のエラーが発生する場合があります:
[System.Runtime.InteropServices.COMException] {"Access is unavailable.rn "} System.Runtime.InteropServices.COMException
ErrorCode 0x80070005
アクセスが拒否されました。
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry( )
at System.DirectoryServices.DirectoryEntries.CheckIsContainer()
at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
これは、Windows Server 2008 が UAC (ユーザー アカウント制御、ユーザー アカウント制御) によってロックされているためです。このプログラムを実行するには、管理者アカウントを使用する必要があります。もう 1 つの方法は、このプログラムを実行するアカウントに次の権限を設定することです: 「サービスとしてログオン」/「バッチ ジョブとしてログオン」
上記は問題を解決するためのものです。 DirectoryEntry 構成 IIS7 で発生する ADSI エラー エラーの方法と、Windows Server 2008 で発生するこのエラーの拡張解決策。 この種の問題の解決に役立つことを願っています
詳細 DirectoryEntry 構成 IIS7 で ADSI エラー: 不明なエラーが表示されます ( 0x80005000) ) 関連記事については PHP 中国語 Web サイトにご注意ください