我试图将大量消息移动到另一个文件夹,操作大约需要5-8分钟,取决于服务器的位置和要移动的项目的数量。我总是得到一个错误(504) Gateway Timeout,其中包含堆栈跟踪:
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)我试图增加ExchangeService的超时时间
var ews = new Microsoft.Exchange.WebServices.Data.ExchangeService();
ews.Timeout = 900000; // 15 minutes in milliseconds但这并不能解决问题。顺便说一句,操作在EWS上成功地完成了,之后所有的项都被移动了。
请您介绍另一种可能的解决方案,如何解决这个问题?
发布于 2017-01-31 01:07:42
504错误表示远程服务器经历了超时。毕竟,如果您经历了直接超时,那么就没有机会发送HTTP状态代码了。
因此,该问题并不是由于您的程序与Exchange服务之间的连接;问题是由于以下原因之一:
您可以通过检查W3C日志并搜索504来确定上述哪个问题。或者,您可以通过代理的样式来判断504的外观,这取决于您是如何设置的。另一种可能是将Exchange服务器的地址添加到代理排除列表中,并查看是否有任何效果。
https://stackoverflow.com/questions/41941483
复制相似问题