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!
X-AnchorMailbox
nagłówka i używaniu plików cookie zaplecza Exchange podczas żądań. Wydaje się, że naprawia się po godzinach (od 30 sekund do całego dnia).Odpowiedzi:
Na podstawie dokumentacji pod adresem: adresem https://msdn.microsoft.com/en-us/library/office/dn458788(v=exchg.150).aspx
Gdy subskrypcja zostanie utracona lub nie będzie już dostępna, najlepiej jest utworzyć nową subskrypcję i nie uwzględniać starego znaku wodnego w nowej subskrypcji. Ponowna subskrypcja ze starym znakiem wodnym powoduje liniowe skanowanie zdarzeń, co jest kosztowne.
Zamiast tego utwórz nową subskrypcję i porównaj właściwości folderu, aby wyszukać zmiany zawartości, które wystąpiły między utraconą subskrypcją a nową subskrypcją. Rozszerzone właściwości folderu, które zalecamy sprawdzić, to
PR_LOCAL_COMMIT_TIME_MAX (0x670a0040)
iPR_DELETED_COUNT_TOTAL (0x670b0003)
.Możesz to zrobić, tworząc rozszerzoną definicję właściwości. Myślę, że to może ci pomóc !!
źródło