ASP.NET 4.0 で AD 検索を実行すると、COM 例外が発生しました: 操作エラーが発生しました (0x80072020)
スレッドActive Directory COM Exception - 操作エラーが発生しました (0x80072020) は正しい方向に私を指摘しました - 説明されている問題は権限に関連しています。
回避策として、アプリケーション プール ID を ApplicationPoolIdentity から NetworkService に切り替えたところ、エラーなしでクエリを実行できました。これに関する紛らわしい部分は、同じドメインの別の IIS7 Web サーバーで、アプリケーション プール ID を ApplicationPoolIdentity のままにしておくことができたことです。
ApplicationPoolIdentity を使用してこのクエリを機能させるために欠けているものはありますか?
FWIW、コードはかなり簡単でした:
PrincipalContext context = new PrincipalContext(ContextType.Domain, theDomain);
UserPrincipal p_up = new UserPrincipal(context);
p_up.GivenName = "John"; //error occurred here
p_up.Surname = "Doe";
PrincipalSearcher ps = new PrincipalSearcher(p_up);
PrincipalSearchResult<Principal> psr = ps.FindAll();