2011-11-10 3 views
9

EWSスロットルポリシーを効果的に処理する方法は何ですか。EWSスロットルポリシーの処理

メールボックスのすべてのメールを読み込み、すべての添付ファイルをダウンロードしようとしています。私が直面している問題は、ExchangeがしばしばThe server cannot service this request right now. Try again later.という例外を返すということです。かなり自明のようだ、私は私の限界を打つ必要があります。このエラーは、CASを使用して1分ごとにどれくらいの時間を費やすかによって発生する可能性が高いことがわかります。抑制ポリシーはEWSPercentTimeInCASのように見えます。

私は1回のクエリで1,000件のメールしか受信できないため、57,000件〜電子メールすべてをクエリする必要があります。どうすればこの作品を作れますか?

私は抑制ポリシーを回避しようとしていないことに注意してください。念頭に置く唯一のアイデアは、私が1000の電子メール(検索結果の上限)を検索するたびにThread.Sleep(30000)ステートメントを発行することです。しかし、1000個のアイテムを取得するのにかかる時間がはるかに短いので、理想的ではありません。

この問題は、添付ファイルのダウンロードに起因するようです。メールボックスには合計7,000〜添付ファイルがあります。

+0

これ以上進捗しましたか? – Midas

答えて

6

あなたのアプローチは正しいです。 1分あたりのリクエスト数を減らす必要があります。このトピックの詳細については、http://blogs.msdn.com/b/mstehle/archive/2010/11/09/ews-best-practices-understand-throttling-policies.aspxを参照してください。

+1

返事をありがとう。私の問題は、バックグラウンドで添付ファイルをダウンロードしていたことでした。バックグラウンドに27,000〜スレッドがあれば、スロットルの限界に達するのに時間がかかりません。 :) – gcso

+2

EWSのスロットルポリシー設定を読み込む簡単な方法はありますか? PowerShellまたはActive Directoryに依存しないでください。それらはネットワークの外部から決してアクセスできないためです。 –

+0

@IvanG。運が良ければ?? – Midas