Bei der Arbeit mit Pull-Abonnements für Office365-Kalenderordner wurden ErrorReadEventsFailed
in der SendNotification
Anforderung viele Nachrichten angezeigt. Dieser Fehler bedeutet im Wesentlichen, dass das Abonnement nicht mehr gefunden werden kann und der Server keine neuen Benachrichtigungen mehr erwarten sollte.
Wenn Sie die von Microsoft empfohlene Fehlerbehandlung überprüfen, besteht die Lösung darin, mithilfe der automatischen Erkennung die externe EwsUrl oder EwsPartnerUrl erneut zu ermitteln und ein neues Abonnement zu erstellen.
Mit Office365 scheint der AutoDiscovery-Dienst mit einer Kombination von OAuth2-Dienstkonten nahezu unmöglich zu sein, sodass ich ihn https://outlook.office365.com/EWS/Exchange.asmx
als Haupt-EWS-Endpunkt verwendet habe.
Wenn ich jedoch versuche, ein neues Abonnement für den jeweiligen Kalenderordner zu erstellen, wird immer wieder ein allgemeiner 500 ErrorNoRespondingCASInDestinationSite
Fehler angezeigt:
Exchange-Webdienste sind derzeit für diese Anforderung nicht verfügbar, da keiner der Clientzugriffsserver am Zielstandort die Anforderung verarbeiten konnte.
Der seltsame Teil ist, dass dies erst direkt nach Erhalt des anfänglichen ErrorReadEventsFailed
Fehlers geschieht . Wenn ich es beispielsweise in 30 Sekunden erneut versuche, wird die Anforderung problemlos ausgeführt.
Nach einigen Recherchen schien es den meisten Benutzern hilfreich zu sein, sicherzustellen, dass der X-AnchorMailbox
Header für den Benutzer, für den sich das Dienstkonto ausgeben möchte, richtig eingestellt war. Ich habe diesen Header noch einmal überprüft, und er wird tatsächlich zusammen mit der Aufforderung zum erneuten Abonnieren gesendet.
Dieses Problem kann durch eine exponentielle Back-Off-Lösung oder durch einfaches erneutes Versuchen von X gelöst werden, bis die Anforderung ausgeführt wird. Es scheint mir, dass der O365-Dienst Zeit benötigt, um das DNS des Exchange-Servers zu ändern, wenn das Abonnement "verloren" geht (das ist das einzige, woran ich denken kann).
Jede Hilfe wäre sehr dankbar!
X-AnchorMailbox
Headers und der Verwendung des Exchange-Backend-Cookies bei allen Anforderungen weiterhin auf. Scheint sich Überstunden zu machen (irgendwo zwischen 30 Sekunden und einem ganzen Tag).Antworten:
Angesichts der Dokumentation unter: https://msdn.microsoft.com/en-us/library/office/dn458788(v=exchg.150).aspx
Wenn ein Abonnement verloren geht oder nicht mehr verfügbar ist, erstellen Sie am besten ein neues Abonnement und nehmen Sie das alte Wasserzeichen nicht in das neue Abonnement auf. Das erneute Abonnieren mit dem alten Wasserzeichen führt zu einem linearen Scan nach Ereignissen, was kostspielig ist.
Erstellen Sie stattdessen ein neues Abonnement und vergleichen Sie die Ordnereigenschaften, um nach Inhaltsänderungen zu suchen, die zwischen dem verlorenen Abonnement und dem neuen Abonnement aufgetreten sind. Die von Ihnen empfohlenen erweiterten Ordnereigenschaften sind
PR_LOCAL_COMMIT_TIME_MAX (0x670a0040)
undPR_DELETED_COUNT_TOTAL (0x670b0003)
.Sie können dies tun, indem Sie eine erweiterte Eigenschaftsdefinition erstellen. Ich denke das kann dir helfen !!
quelle