2016-12-14 166 views
1

我正尝试使用Microsoft.Exchange.WebServices.dll(EWS Apis)Microsoft.Exchange.WebServices:无法将数据写入传输连接:现有连接被远程主机强制关闭

在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)

或有时它抛出:

请求失败。底层连接已关闭:接收时发生意外错误。

堆栈strace的::在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest请求) 在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest &请求) 在Microsoft.Exchange.WebServices。 Data.MultiResponseServiceRequest 1.Execute() at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable 1项,FolderId parentFolderId,可空1 messageDisposition, Nullable 1 sendInvitationsMode,ServiceErrorHandling ErrorHandling中) 在Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId,可空1 messageDisposition, Nullable 1 sendInvitationsMode) 在Microsoft.Exchange.WebServices.Data。 Item.Save(FolderId parentFolderId) at Off ice365EWSWriter.Office365Engine.SaveMail(EmailMessage p_objEWSMailItem,FolderId p_objFoderID)

请建议解决方案。

+0

嗨Renuka,在上面的代码中是什么'MailMessageObj'?并且您正在从哪个邮件帐户获取邮件消息? –

+0

对不起。它的f_ObjEWSMail .. – Renuka

+0

如果您添加更多关于您正在使用的代码的更多信息,那将会很棒。 –

回答

-1

这些错误是由于底层传输连接问题(例如,您的网络连接到云),因为您处理云无法保证网络100%(例如vs Onprem,您只需连接到服务器通过交换机)。在这种情况下你所能做的就是捕获错误并重试。 EWS Managed API使用HttpWebRequest来发送和接收SOAP数据包,所以这些错误是由客户端的这个类产生的(如果你想进一步追踪这些错误,那么我会建议在那个类上搜索Stackoverflow的错误)。如果您尝试使用AWS或Azure等基于云的虚拟机(或服务)中的代码,则应该发现这些错误的实例要低得多,因为底层网络连接更加可靠。

相关问题