2016-09-19 3 views
0

Directory Serverと通信してユーザー情報を取得するアプリケーションを開発しました。DirectorySearcherからERROR_MORE_DATAが返される

このアプリケーションは一般的なもので、Active Directoryやその他のディレクトリサービスと通信できます。

このアプリケーションを使用してRadiant One VDSからデータを読み取るケースでは、アプリケーションがERROR_MORE_DATAで失敗します。上記のコードで

try 
{ 
    using (DirectoryEntry de = new DirectoryEntry("LDAP://" + server + "/" + basedn, username, pwd,AuthenticationTypes.None)) 
    { 
    using (DirectorySearcher Searcher = new DirectorySearcher(de)) 
    { 
     Searcher.Filter = "(&(objectClass=user))"; 
     Searcher.ReferralChasing = ReferralChasingOption.All; 
     Searcher.PropertiesToLoad.Add("cn"); 
     Searcher.PropertiesToLoad.Add("memberof"); 
     Searcher.PageSize = 1000; 

     using (SearchResultCollection allUsers = Searcher.FindAll()) 
     {        
     foreach (SearchResult user in allGroups) 
     { 
      . 
      . 
      . 
      . 
     } 
     } 
    } 
    } 
} 
catch(System.Exception ex) 
{ 
} 

Searcher.FindAll()戻りERROR_MORE_DATA:以下は、このエラーを返すコードです。私が検索したとき、私はthisの記事を見つけました。

しかし、この記事では、およそ.NET 1.0を話し、私のアプリケーションは、.NET 3.5

で実行され、あなたは誰もここに私を助けてくださいことはできますか? DirectoryServices.Protocolsに行くことなくこれを解決する方法はありますか?

答えて

0

一般的に、この問題は以下の状況で来る: -

1つ以上のエントリがネットワークに存在し、バッファサイズがそれを保持するのに十分ではありませんしている場合。 ERROR_MORE_DATA

バッファのサイズを指定するだけで済みます。 参照:specify the size of buffer in network call

関連する問題