System.DirecoryServices.DirectorySearcherを使用する場合ClientTimeOutが発生したかどうか、または検索が空のSearchResultCollectionを自然に返したかどうかをどのように判断できますか?あなたは真に非同期のプロパティを設定する場合は、次のスニペットDirectorySearcherの使用時にClientTimeoutを決定する方法
ClientTimeoutを設定using (var searcher = new DirectorySearcher(adRoot))
{
searcher.Filter = "SomeFilter";
searcher.PropertiesToLoad.Add("givenname");
searcher.PropertiesToLoad.Add("sn");
searcher.PropertiesToLoad.Add("department");
searcher.PropertiesToLoad.Add("samaccountname");
searcher.ClientTimeout = TimeSpan.FromSeconds(10);
using (var results = searcher.FindAll())
{
//haldle results
}
}
}
ご回答ありがとうございます。 Asyncプロパティが設定されていなくても、検索に10秒以上かかる場合、ClientTimeoutが発生します。 DirectorySearcherがクライアントタイムアウト時間が経過したために検索が「中止」された場合、ネットワーク上の他のドメインコントローラに対して検索を再試行します。 ドメインコントローラの1つが残りの部分よりもはるかに遅く、10秒を超えた場合に別のコントローラにフェールオーバーする必要がある – flalar