EWS Api显示超时和(503)服务器不可用 [英] EWS Api gives timeout and (503) Server Unavailable

查看:46
本文介绍了EWS Api显示超时和(503)服务器不可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码通过EWS API设置(Microsoft.Exchange.WebServices 2.2.0)从我的Office 365帐户获取日历约会:

ExchangeService service = new ExchangeService();
service.Credentials = new NetworkCredential(mail, password);
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
Folder DefaultCalendar = Folder.Bind(service, WellKnownFolderName.Calendar);
CalendarView calendarView = new CalendarView(fromDate, toDate);
FindItemsResults<Appointment> resultAppointments = Folder.FindAppointments(calendarView);

应用程序经常崩溃,出现以下异常:

Microsoft.Exchange.WebServices.Data.ServiceRequestException:The 请求失败。操作已超时-> System.Net.WebException:操作在 System.Net.HttpWebRequest.GetResponse()位于 Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() 在… Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求)-内部异常堆栈跟踪结束-在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求),地址为 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest&; 请求),地址为 Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() 在… Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId FolderId,PropertySet,PropertySet)位于 Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId FolderId,PropertySet,PropertySet)位于 Microsoft.Exchange.WebServices.Data.CalendarFolder.Bind(ExchangeService 服务,文件夹ID)

或:

Microsoft.Exchange.WebServices.Data.ServiceRequestException:The 请求失败。远程服务器返回错误:(503)服务器 不可用。->System.Net.WebException:返回远程服务器 错误:(503)服务器不可用。在… System.Net.HttpWebRequest.GetResponse()位于 Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() 在… Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求)-内部异常堆栈跟踪结束-在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求),地址为 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest&; 请求),地址为 Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() 在… Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId FolderId,PropertySet,PropertySet)位于 Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder[TFolder](FolderId FolderId,PropertySet,PropertySet)位于 Microsoft.Exchange.WebServices.Data.CalendarFolder.Bind(ExchangeService 服务,文件夹ID)

或:

Microsoft.Exchange.WebServices.Data.ServiceRequestException:The 请求失败。基础连接已关闭:连接 本应保持活动状态的服务器已关闭。-> System.Net.WebException:基础连接已关闭:A 本应保持活动状态的连接已由 服务器。在System.Net.HttpWebRequest.GetResponse()at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() 在… Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求)-内部异常堆栈跟踪结束-在 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest 请求),地址为 Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest&; 请求),地址为 Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest1.Execute() at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems[TItem](IEnumerable1 parentFolderIds、SearchFilter searchFilter、String queryString 视图基础视图,分组依据,ServiceErrorHandling errorHandlingMode)位于 Microsoft.Exchange.WebServices.Data.Folder.InternalFindItems[TItem](SearchFilter searchFilter,ViewBase视图,Grouping groupBy)位于 Microsoft.Exchange.WebServices.Data.CalendarFolder.FindAppointments(CalendarView 查看)

或:

服务器当前无法为此请求提供服务。请稍后重试。

似乎有时Office 365服务无法访问或处于限制状态;我尝试捕获代码,但应用程序仍然崩溃;我认为这是因为打开了一个新线程。我如何处理此问题?

EWS

首先要从推荐答案https://github.com/OfficeDev/ews-managed-api获取最新版本的EWSManaged API。您使用的版本自2015年(Microsoft停止发布该库的编译版本)以来就没有更新过。但是,GitHub上的代码已更新,修复了许多错误

对于您使用的代码,我建议您始终设置可能导致503和超时问题的X-AnclMailBox(请参阅 https://blogs.msdn.microsoft.com/webdav_101/2015/05/11/best-practices-ews-authentication-and-access-issues/(即使您不使用模拟)

根据您的应用程序正在做的工作量,您可能会受到限制,在这种情况下,处理异常并重试很重要。此外,在Office365中,邮箱在后端进行了相当程度的移动,因此经常会看到邮箱在这些移动过程中无法访问的情况

我试图捕获我的代码,但应用程序仍然崩溃;我想是因为打开了一个新的线程。我如何处理此问题?

否,它不跨越新线程您可以自己在GitHub上检查源代码,所以您的异常处理肯定有其他问题。

这篇关于EWS Api显示超时和(503)服务器不可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆