大量のメッセージを別のフォルダに移動しようとしていますが、サーバーの場所と移動するアイテムの量によって、操作に約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で正常に終了し、その後すべてのアイテムが移動されます。
この問題を解決するには別の解決策をお勧めしますか?
は、IIS上でホストされるアプリケーションです増やしますか? – MadDev
小さなバッチで移動しようとしました –
@ GlenScalesより小さなバッチが正常に動作します。タイムアウトを延長して解決策が見つからない場合は、マルチスレッド処理で分割する予定です。 –