EWS订阅间歇性丢失。它会丢失两个错误。
错误1 Microsoft.Exchange.WebServices.Data.ServiceResponseException:邮箱数据库暂时不可用。,无法打开邮箱/ o = ExchangeLabs / ou = Exchange管理组
错误2
Microsoft.Exchange.WebServices.Data.ServiceResponseException:请求失败,因为EWS无法联系相应的CAS服务器以获取此请求。
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ProcessWebException(WebException webException)
在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest请求)
在Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request)
在Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest 1.Execute()
at Microsoft.Exchange.WebServices.Data.ExchangeService.SubscribeToStreamingNotifications(IEnumerable
1 folderIds,EventType [] eventTypes)
我使用过Exchange 2013交换服务。
ExchangeService exchange = new ExchangeService(ExchangeVersion.Exchange2013);
exchange.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, _primaryMailbox);
exchange.HttpHeaders.Add("X-AnchorMailbox", _primaryMailbox);
exchange.HttpHeaders.Add("X-PreferServerAffinity", "true");
以下是添加订阅的方法。
ExchangeService exchange = group.ExchangeService;
exchange.Credentials = new WebCredentials(BCCSettings.ImpersonatedUsername, BCCSettings.ImpersonatedPassword);
exchange.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, mailbox);
subscription = exchange.SubscribeToStreamingNotifications(PreparFolders().ToArray(), EventType.NewMail, EventType.Moved);
任何帮助将不胜感激。
答案 0 :(得分:4)
错误1
这是正常的瞬态,并且会在后端服务器得到服务(例如应用补丁)时发生,并且邮箱在后端移动以实现负载平衡和其他操作原因。您的客户端应该在必要时捕获并重试或重新创建(例如,如果在服务器或数据中心之间移动邮箱,则通常意味着订阅不再有效并且需要重新创建)。
错误2
很可能是由于错误1中的相同问题,例如邮箱可能已被移动到另一个数据中心,因为主服务器中的服务器正在升级等。如果您使用关联https://msdn.microsoft.com/en-us/library/office/dn458789(v=exchg.150).aspx,则需要重新发现该组邮箱现在与(最可能已更改)相关联,并为该组中的该邮箱创建新订阅。