2012-10-10 10 views

答えて

8

データ型がInt32,のため、2,147,483,647という制限があります。ItemView(2147483647)を渡すとエラーが返されませんでした。

検索アイテムのページサイズを定義するだけで、検索ページのサイズより検索アイテムの結果が多い場合は、残りの結果を返すために、ItemViewオフセットを使用する後続の呼び出しを実行する必要があります。

REF - http://msdn.microsoft.com/en-us/library/exchange/dd633693%28v=exchg.80%29.aspx http://msdn.microsoft.com/en-us/library/system.int32.maxvalue.aspx

4

Exchange内のデフォルトポリシーは1000件にページサイズを制限します。ページサイズをこの数値より大きい値に設定しても実用的な効果はありません。また、アプリケーションは、EWSFindCountLimit調整パラメータ値が、同時要求を行うアプリケーションに対して部分的な結果セットを返す可能性があるという事実を考慮する必要があります。

http://msdn.microsoft.com/en-us/library/office/jj945066(v=exchg.150).aspx

5

あなたはItemViewコンストラクタでのInt32値を指定することができますが、唯一の千項目がreturndされます。残りの項目を取得するには、ループを指定する必要があります。

 bool more = true; 
     ItemView view = new ItemView(int.MaxValue, 0, OffsetBasePoint.Beginning); 
     view.PropertySet = PropertySet.IdOnly; 
     FindItemsResults<Item> findResults; 
     List<EmailMessage> emails = new List<EmailMessage>(); 
     while (more) 
     { 
      findResults = service.FindItems(WellKnownFolderName.Inbox, view); 
      foreach (var item in findResults.Items) 
      { 
       emails.Add((EmailMessage)item); 
      } 
      more = findResults.MoreAvailable; 
      if (more) 
      { 
       view.Offset += 1000; 
      } 
     } 
+0

ありがとうございます!これは私に大きな時間を助けた – Kage

関連する問題