来自 EWS Nuget 的 NullReferenceException

Ana*_*and 5 exchangewebservices

我正在使用Exchange.WebServices.Managed.Api 2.2.1.2Nuget 包从 EWS 2016 发送电子邮件。有时我会收到下面给出的异常。电子邮件已发送并保存到“已发送邮件”文件夹中,因此看起来这不是服务器问题,并且似乎 Nuget 包以某种方式引发了此误导性错误。

有人遇到过这种情况吗?

    System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.WrapStream(Stream responseStream, String contentEncoding)
   at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetResponseStream(IEwsHttpWebResponse response)
   at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response)
   at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.InternalExecute()
   at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute()
   at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable`1 items, FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode, ServiceErrorHandling errorHandling)
   at Microsoft.Exchange.WebServices.Data.ExchangeService.CreateItem(Item item, FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode)
   at Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId, Nullable`1 messageDisposition, Nullable`1 sendInvitationsMode)
   at Microsoft.Exchange.WebServices.Data.EmailMessage.InternalSend(FolderId parentFolderId, MessageDisposition messageDisposition)
   at Microsoft.Exchange.WebServices.Data.EmailMessage.SendAndSaveCopy(WellKnownFolderName destinationFolderName)
   at Elliott.CollateralMgmt.Common.Email.Emailer.SendEws(Email email, Boolean isHtml, Dictionary`2 attachments) in /app/Elliott.CollateralMgmt.Common/Email/Emailer.cs:line 162
Run Code Online (Sandbox Code Playgroud)

Hen*_*yer 2

为了调试此类问题,我建议您从以下位置下载源代码:

https://github.com/OfficeDev/ews-management-api

然后,您将能够添加断点并单步执行库代码

我是你的具体问题,你应该看看

Microsoft.Exchange.WebServices.Data.ServiceRequestBase.WrapStream
Run Code Online (Sandbox Code Playgroud)