現在オフラインです。再接続するためにインターネットの接続を待っています

ADSI を使用して Active Directory へ接続する時に RPC エラーコード RPC_NT_CALL_FAILED_DNE 0xC002001C が返される

現象
アプリケーションが特定のユーザーに偽装 (Impersonate) して、複数のスレッドから ADSI を使用する場合にエラーコード RPC_NT_CALL_FAILED_DNE 0xC002001C が返される場合があります。
原因
偽装した複数のスレッドから Active Directory に接続する場合、RPC ではスレッド間の同期を考慮しないため、一方のスレッドの RPC 通信が完了した時に、タイミングによって他方のスレッドの RPC 接続が閉じられる現象が発生します。
回避策
再度 RPC 接続を実施するため、ADSI の呼び出し処理をリトライします。

状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
本現象は Windows Server 2008 R2 では発生しません。

なお、特定のサーバーを明示的に指定してバインドを行うことが運用上可能な場合は、バインディング文字列に特定のサーバ名を指定する方法も本現象の回避手段となります。サーバを指定してバインドを実行した場合、本現象の発生個所となる処理自体が実行されませんため、結果的に本現象を回避することが可能となるためです。

下記では "server01" に対して明示的にバインドする場合の例を示しています。サーバーの指定は NetBIOS 名、FQDN 名、IP アドレスの何れも使用できます。


hr = ADsOpenObject( L"LDAP://server01/CN=Jeff Smith,CN=users,DC=fabrikam,DC=com",
NULL, NULL, ADS_SECURE_AUTHENTICATION, IID_IDirectorySearch, (void**)&pDirSrch);








注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2569635 - 最終更新日: 06/27/2011 03:50:00 - リビジョン: 1.0

Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Foundation, Windows Server 2008 Standard

  • kbnofix KB2569635
フィードバック