我正在尝试使用Microsoft.Exchange.WebServices.dll(EWS Apis)在Office 365上保存电子邮件
EmailMessage f_ObjEWSMail = new EmailMessage(objExchangeService);
f_ObjEWSMail.Save(p_objFoderID); // Throwing error here
随机抛出异常:
无法从传输连接读取数据:远程主机强行关闭现有连接。
在System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)
在System.Net.TlsStream.EndRead(IAsyncResult asyncResult)
在System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
在System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
或有时抛出:
请求失败。基础连接已关闭:接收时发生意外错误。
Stack Strace :: at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) 在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) 在Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest
1.Execute() at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable
1项,FolderId parentFolderId,Nullable1 messageDisposition, Nullable
1 sendInvitationsMode,ServiceErrorHandling errorHandling) 在Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId,Nullable1 messageDisposition, Nullable
1 sendInvitationsMode) 在Microsoft.Exchange.WebServices.Data.Item.Save(FolderId parentFolderId) 在Office365EWSWriter.Office365Engine.SaveMail(EmailMessage p_objEWSMailItem,FolderId p_objFoderID)
请建议解决方案。
答案 0 :(得分:0)
这些错误是由于底层传输连接问题(例如您与云的网络连接)造成的,因为您处理云无法保证100%的网络(例如,与您刚刚连接到网络的Onprem相比)服务器通过交换机)。在这个例子中你所能做的就是捕获错误并重试。 EWS Managed API使用HttpWebRequest发送和接收SOAP数据包,因此这些错误是由客户端的这个类生成的(如果你想进一步追逐那些错误,那么我建议在Stackoverflow上搜索那个类的那些错误)。如果您尝试使用来自基于云的虚拟机(或服务)(如AWS或Azure)的代码,您应该会发现这些错误的实例要低得多,因为底层网络连接更加可靠。