tag:当我尝试绑定到电子邮件时,有时会发生Microsoft EWS连接错误

时间:2019-11-20 03:20:00

标签: sharepoint outlook office365 exchangewebservices

我一直在使用EWS Exchange 2015版本作为我的代码,直到最近,它一直有效,在某些情况下,出现了若干错误消息之一

“请求失败。无法解析远程名称:'outlook.office365.com'”

“请求失败。远程服务器返回错误:(401)未经授权。”

“请求失败。无法从传输连接中读取数据:远程主机强行关闭了现有连接。”

“请求失败。操作已超时”

当我尝试绑定到电子邮件时。 目前,该代码有时可以工作,而在其他时候则不能。只是想知道有人对此有解决方案吗?还是这仅仅是office365服务器端的问题,我对此无能为力?

exchangeService = new ExchangeService(ExchangeVersion.Exchange2015);      
EmailMessage emailMsg = EmailMessage.Bind(exchangeService, item.Id);

侧面说明: 我绝对可以确保我的凭据正确无误,并且我输入的域名正确无误,因为它已经硬编码到了我的应用程序中,并且多年以来我都没有对其进行编辑。使用相同的凭据,我可以成功登录Outlook.com

1 个答案:

答案 0 :(得分:0)

  

“请求失败。无法解析远程名称:'outlook.office365.com'”

与服务无关(在任何有据可查的中断范围内),这是网络连接或DNS解析问题

  

“请求失败。无法从传输连接中读取数据:远程主机强行关闭了现有连接。”

是的,可以看到这一点,特别是如果您的连接处于更潜在的状态(我在澳大利亚),这意味着对于具有复原力的代码,您对EWS的每个请求都应包装在Try Catch中,然后至少重试一次(您也应该这样一来,您就可以处理任何限制响应)。如果您的网络连接很低,那么上传大型附件可能会有些麻烦。

  

“请求失败。操作已超时”

这可以是服务,也可以是网络,通常您会在使用FindItems的搜索中看到它。 EWS托管API中的默认超时为90秒,因此您可以将其调整为我从未见过的Bind上的错误,尽管听起来像是网络连接真的很差。

  

“请求失败。远程服务器返回错误:(401)未经授权。”

我将确保您按照如下所述设置X-AnchorMailbox标头 https://blogs.msdn.microsoft.com/webdav_101/2018/06/16/best-practices-important-and-critical-headers-for-ews/。这会影响请求的路由(并且它一直被所有客户端(例如OWA和Outlook)使用)

一种很好的测试方法是在Azure上的某个地方启动VM(您可以选择要测试的不同区域),然后在那里运行代码一段时间,然后根据您在本地看到的代码进行测试,以查看错误是否相关。

相关问题