您不能使用 EWS 客户端发送大附件

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3107326
症状
请考虑以下情形:
  • 用户通过使用 Exchange Web 服务 (EWS) 客户端连接到他们的邮箱。
  • 用户的邮箱位于站点 b。
  • 客户端连接到 Microsoft Exchange 服务器在站点 a。
  • 网站的代理服务器上的 Exchange 服务器到站点 B 上的 Exchange 服务器的请求

在此方案中,用户将无法发送包含较大附件的电子邮件。当您使用 Outlook 的 Mac 客户端时,它将邮件移动到草稿文件夹,并返回以下错误:

An unknown error has occurred. Connection to the server failed or was dropped. Outlook cannot send the message, because the message size exceed the maximum limit set on the server


EWS 网站显示 HTTP 500 状态使用记录类似于以下内容的一般性错误:

ReportException_Message=Exchange Web Services are not currently available for this request because none of the Client Access Servers in the destination site could process the request.;ReportException_StackTrace= at Microsoft.Exchange.Services.Wcf.EWSService.GetServiceAsyncResult[TSoapResponseBody](IAsyncResult result) at Microsoft.Exchange.Services.Wcf.EWSService.CreateSoapResponse[TSoapResponse;TSoapResponseBody](IAsyncResult result; Func`2 createSoapResponseCallback) at AsyncInvokeEndEndCreateItem(Object ; Object[] ; IAsyncResult ) at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(Object instance; Object[]& outputs; IAsyncResult result) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet);

站点 B 的 EWS 日志显示类似于以下一般性错误 HTTP 500 状态:

ReportException_Message=The remote host closed the connection. The error code is 0x80070057.;ReportException_StackTrace= at System.ServiceModel.Channels.HttpOutput.HostedRequestHttpOutput.HostedResponseOutputStream.CheckWrapThrow(Exception e) at System.ServiceModel.Channels.HttpOutput.HostedRequestHttpOutput.HostedResponseOutputStream.Write(Byte[] buffer; Int32 offset; Int32 count) at System.IO.BufferedStream.FlushWrite() at System.IO.BufferedStream.Flush() at System.Xml.XmlStreamNodeWriter.Flush() at Microsoft.Exchange.Services.Wcf.SoapWcfResponseRenderer.Render(Message message; Stream stream) at Microsoft.Exchange.Services.Wcf.MessageEncoderWithXmlDeclaration.WriteMessage(Message message; Stream stream) at System.ServiceModel.Channels.HttpOutput.WriteStreamedMessage(TimeSpan timeout) at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) at System.ServiceModel.Channels.HttpRequestContext.OnReply(Message message; TimeSpan timeout) at System.ServiceModel.Channels.RequestContextBase.Reply(Message message; TimeSpan timeout) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Reply(MessageRpc& rpc);

原因
在此请求的两个站点上的 Exchange 服务器之间的连接是 droppedbecause 的 ProxyTimeout 设置。


解决方案
若要解决此问题,请通过 EWS 进行编辑 web.config 文件增加在 CAS 服务器上的ProxyTimeout值。若要执行此操作,请按照下列步骤操作:

  1. 定位到 web.config 文件,,然后在记事本或其他文本编辑程序中打开该文件。默认位置是%ExchangeInstallPath%\ClientAccess\exchweb\ews
  2. 在文件中,向下滚动以查找以下语句:<AppSettings></AppSettings>
  3. 增加超时值<AppSettings>部分中添加以下行:
    </AppSettings>
    <add key="ProxyTimeout" value="120000" />
  4. 重新启动 MSExchangeServicesAppPool 应用程序池。

注意:ProxyTimeout的默认值是 59000.This 值应逐渐增加,直到问题解决。例如,开始通过增加到 120000 超时。如果此问题仍然存在,请将值增加到 210000。
更多信息
有关详细信息,请参阅 启动或停止应用程序池.
EWS,Outlook MAC 大型附件,ProxyTimeout,跨网站代理

警告:本文已自动翻译

属性

文章 ID:3107326 - 上次审阅时间:12/11/2015 02:04:00 - 修订版本: 1.0

Microsoft Exchange Server 2010 Enterprise, Microsoft Exchange Server 2010 Standard, Microsoft Outlook 2016 for Mac, Microsoft Outlook 2011 for Mac

  • kbsurveynew kbmt KB3107326 KbMtzh
反馈