1

ドメイン カタログ アプローチを使用して Active Directory に接続する際にパフォーマンスの問題に直面した後、友人からグローバル カタログ アプローチを使用するようにアドバイスされましたが、より高いパフォーマンスの問題に直面し、概念実証を行ってから使用しました。

例 1 : ドメイン カタログを使用する

DirectoryEntry de = new DirectoryEntry();

de.Path = "LDAP://DomainName.CORP.COM";
de.Password = "UserPassword";
de.Username = "UserName";

DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;

deSearch.ClientTimeout = new TimeSpan(0, 0, 60);

deSearch.SearchScope = SearchScope.Subtree;
string format = "(&(objectClass=user)(sAMAccountName="+InputUserName+"))";
deSearch.Filter = string.Format(format, UserName);

約1秒かかりました

例 2 : セキュリティで保護されていないポート (3268) でグローバル カタログを使用する:

de.Path = "GC://CORP.COM:3268";

6秒かかった

例 3 : セキュリティで保護されたポート (3269) でグローバル カタログを使用する:

de.Path = "GC://CORP.COM:3269";

38秒かかりました

セキュリティで保護されたグローバル カタログ アプローチを使用してパフォーマンスの問題を解決する方法を教えてください。時間がかかりましたか?

ところで、次の記事を見つけました: http://support.microsoft.com/kb/951581ページ クエリを無効にすることでパフォーマンスの問題を解決できますが、その実装方法がわかりません。

あなたのフィードバックは非常に高く評価されます

4

2 に答える 2

0

ここで最終的な目標を判断するのは難しいですが、コードから判断すると、ユーザーを承認し、そのプロパティも取得しようとしているように見えますか?

この場合、実際にはグローバルカタログ構文を使用する必要はありません。標準のドメインカタログ構文と、下位レベルのSystem.DirectoryServicesライブラリを使用することをお勧めします。

SSLを介してActiveDirectoryに接続、承認、検索するときに、非常によく似たパフォーマンスの問題を調査するために2週間を費やしました。チケットは、次の場所にあります。

自己署名SSL証明書を処理するようにSystem.DirectoryServices.DirectoryEntryのコールバックを設定しますか?

うまくいけば、これはあなたが正しい方向に進むようになるでしょう。

于 2012-12-31T16:10:21.437 に答える
0

SSL の問題は、証明書の失効またはそれに沿った何かのチェックに関連している可能性があります。

DC で実行されている Windows のバージョンは何ですか?

于 2012-04-13T19:29:12.537 に答える