【问题标题】:Increase timeout for waiting for a response from Exchange Web Server增加等待 Exchange Web Server 响应的超时时间
【发布时间】:2017-06-15 22:32:51
【问题描述】:

我正在尝试将大量邮件移动到另一个文件夹,该操作大约需要 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 上成功完成,之后所有项目都被移动了。

您能否推荐另一种可能的解决方案来解决此问题?

【问题讨论】:

  • 您的应用程序是否托管在 IIS 上?
  • 您是否尝试过小批量移动它们
  • @GlenScales 小批量工作正常。如果我没有找到延长超时的可能解决方案,我会用多线程处理拆分方法。
  • @RMadd UPD:该应用程序是使用 EWS 托管 API 2 的 Windows 服务

标签: c# asp.net web-services exchange-server exchangewebservices


【解决方案1】:

504 错误表示远程 服务器出现超时。毕竟,如果您遇到直接超时,那么就没有机会发回 HTTP 状态代码了。

所以问题不是由于您的程序和 Exchange 服务之间的连接;问题是由于以下原因之一:

  1. Exchange 服务与 Exchange 内部使用的某些其他服务之间的连接超时。您将需要确定哪个组件正在超时并调整特定于系统该区域的超时设置。有很多超时要查看。你可以开始here

  2. 您对 Exchange 服务的访问由代理服务器调解,并且代理服务器和 Exchange 之间的连接超时。您可能需要调整代理服务器设置。

您可以通过检查 W3C 日志并搜索 504 来确定上述哪个问题。或者,您可以仅通过样式来判断 504 来自代理时的外观,具体取决于您的设置方式。另一种可能性是将 Exchange 服务器的地址添加到您的代理排除列表中,看看是否有任何效果。

【讨论】:

  • 我不使用代理,我只是使用 Windows 服务中的 EWS Managed API 2,所以我想应该以某种方式配置 Exchange Server。我没听错吗?
猜你喜欢
  • 1970-01-01
  • 2021-01-22
  • 2019-12-30
  • 1970-01-01
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
相关资源
最近更新 更多