2016-12-14 163 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等基於雲的虛擬機(或服務)中的代碼,則應該發現這些錯誤的實例要低得多,因爲底層網絡連接更加可靠。

相關問題