0

大量のメッセージを別のフォルダに移動しようとしていますが、サーバーの場所と移動するアイテムの量によって、操作に約5-8分かかる場合があります。 そして私は常にエラー(504) Gateway Timeout、スタックトレースを 取得:私はExchangeServiceのタイムアウトを増加しようとしていたExchange Webサーバーからの応答を待つ時間を増やす

Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (504) Gateway Timeout. ---> System.Net.WebException: The remote server returned an error: (504) Gateway Timeout. 
    at System.Net.HttpWebRequest.GetResponse() 
    at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) 
    --- End of inner exception stack trace --- 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) 
    at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() 
    at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalMoveItems(IEnumerable`1 itemIds, FolderId destinationFolderId, Nullable`1 returnNewItemIds, ServiceErrorHandling errorHandling) 
    at Microsoft.Exchange.WebServices.Data.ExchangeService.MoveItems(IEnumerable`1 itemIds, FolderId destinationFolderId) 
    at EAS.Exchange.ExchangeProvider.MoveItemsToFolder(String folderUniqueId, String[] itemUniqueIds) 

var ews = new Microsoft.Exchange.WebServices.Data.ExchangeService(); 
ews.Timeout = 900000; // 15 minutes in milliseconds 

をしかし、それは問題を解決していません。ところで、作業はEWSで正常に終了し、その後すべてのアイテムが移動されます。

この問題を解決するには別の解決策をお勧めしますか?

+0

は、IIS上でホストされるアプリケーションです増やしますか? – MadDev

+0

小さなバッチで移動しようとしました –

+0

@ GlenScalesより小さなバッチが正常に動作します。タイムアウトを延長して解決策が見つからない場合は、マルチスレッド処理で分割する予定です。 –

答えて

0

エラーは、リモートサーバーがタイムアウトしたことを示します。結局のところ、直接タイムアウトが発生した場合、HTTPステータスコードを返す機会はありませんでした。

問題は、プログラムとExchangeサービスとの接続によるものではありません。次のいずれかが原因で問題が発生します。

  1. ExchangeサービスとExchangeが内部で使用するその他のサービスとの接続にタイムアウトが発生しています。どのコンポーネントがタイムアウトしているか把握し、システムのその領域に特有のタイムアウト設定を調整する必要があります。見るべきタイムアウトがたくさんあります。 hereを開始することができます。

  2. Exchangeサービスへのアクセスは、プロキシサーバーによって仲介され、プロキシサーバーとExchange間の接続がタイムアウトします。プロキシサーバーの設定を調整する必要がある場合があります。

W3Cログを調べて504を検索することで、上記のいずれが問題であるかを判断できます。あるいは、あなたが物事をセットアップした方法に応じて、単にスタイリングによってプロキシから来たときに、504のように見えるかもしれません。もう1つの可能性は、Exchangeサーバーのアドレスをプロキシ除外リストに追加し、それが何らかの影響を持つかどうかを確認することです。

+0

私はプロキシを使用しません.WindowsサービスからEWS Managed API 2を使用するだけですので、Exchange Serverを何とか設定する必要があります。私はあなたを正しく理解しましたか? –

0

エラーは、IISで設定された接続タイムアウト値によって発生する可能性があります。

は、値を増やしてみてください:

IISを - > [アプリケーション]を右クリック - >ウェブサイトを管理] - > [詳細設定] - > [制限]を展開 - >接続タイムアウト

+0

申し訳ありませんが、私は間違っていました、EWS Managed APIで動作するアプリはWindowsサービスです。 –

関連する問題