【发布时间】:2020-05-07 22:31:24
【问题描述】:
我正在使用以下代码通过 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: 请求失败。操作超时---> 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 服务,FolderId id)
或:
Microsoft.Exchange.WebServices.Data.ServiceRequestException: 请求失败。远程服务器返回错误:(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 服务,FolderId id)
或:
Microsoft.Exchange.WebServices.Data.ServiceRequestException: 请求失败。底层连接已关闭:连接 预计保持活动状态的服务器已关闭。 ---> System.Net.WebException:底层连接已关闭:A 预期保持活动的连接被 服务器。在 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() at Microsoft.Exchange.WebServices.Data.ExchangeService.FindItems[TItem](IEnumerable1 parentFolderIds, SearchFilter searchFilter, String queryString, ViewBase 视图、分组 groupBy、ServiceErrorHandling 错误处理模式)在 Microsoft.Exchange.WebServices.Data.Folder.InternalFindItems[TItem](SearchFilter searchFilter、ViewBase 视图、分组 groupBy)在 Microsoft.Exchange.WebServices.Data.CalendarFolder.FindAppointments(CalendarView 查看)
或:
服务器目前无法处理此请求。请稍后再试。
似乎有时 Office 365 服务无法访问或受到限制;我试图尝试捕获我的代码,但应用程序仍然崩溃;我认为是因为打开了一个新线程。我该如何处理这个问题?
【问题讨论】:
标签: c# office365 exchangewebservices