Podczas pracy z subskrypcjami ściągania folderów kalendarza Office365 otrzymałem wiele ErrorReadEventsFailed
wiadomości w formacieSendNotification
żądaniu. Ten błąd zasadniczo oznacza, że nie można już znaleźć subskrypcji, a serwer nie powinien już oczekiwać nowych powiadomień.
Sprawdzanie zalecanej przez Microsoft obsługi błędów , rozwiązaniem jest użycie automatycznego wykrywania, aby ponownie odkryć ExternalEwsUrl lub EwsPartnerUrl i utworzyć nową subskrypcję.
W Office365 usługa AutoDiscovery wydaje się prawie niemożliwa z kombinacją kont usługi OAuth2, więc używam go https://outlook.office365.com/EWS/Exchange.asmx
jako głównego punktu końcowego EWS.
Jednak gdy próbuję utworzyć nową subskrypcję dla określonego folderu kalendarza, pojawia się ogólny 500 ErrorNoRespondingCASInDestinationSite
błąd:
Usługi internetowe Exchange nie są obecnie dostępne dla tego żądania, ponieważ żaden z serwerów dostępu klienta w lokacji docelowej nie może przetworzyć żądania.
Dziwne jest to, że dzieje się to bezpośrednio po otrzymaniu początkowego ErrorReadEventsFailed
błędu . Jeśli spróbuję ponownie za, powiedzmy, 30 sekund, żądanie przejdzie bez problemu.
Po przeprowadzeniu pewnych badań wydawało się, że większość użytkowników uznała za pomocne upewnienie się, że plik X-AnchorMailbox
nagłówek został prawidłowo ustawiony dla użytkownika, pod którego konto usługi chce się podszyć. Dwukrotnie sprawdziłem ten nagłówek i rzeczywiście jest wysyłany wraz z prośbą o ponowną subskrypcję.
Ten problem można rozwiązać za pomocą wykładniczego rozwiązania wycofywania lub przez ponawianie X razy, aż żądanie zostanie zrealizowane. Wydaje mi się, że gdy abonament się „zgubi”, usługa O365 potrzebuje czasu na zmianę DNS serwera Exchange (to jedyne o czym przychodzi mi do głowy).
Każda pomoc byłaby bardzo mile widziana!