Ich verwende Exchange-Webdienste (Exchange Server 2010) zum Synchronisieren des Outlook-Kalenders von Benutzern mit meiner Anwendung.Ich implementierte EWS-Pushbenachrichtigungen zum Zurückrufen meiner Anwendung, wenn Ereignisse erstellt, geändert, gelöscht werden ausschauen Benutzer. Ich habe dies erreicht, indem ich die E-Mail-Anmeldeinformationen des Benutzers mit EWS abonniert habe.Subscriptions-ID von Exchange-Webdiensten finden
Client-Anwendung sollte OK Antworten an Server senden, wenn es Rückrufe vom Server erhalten. Wenn es keine OK-Antworten von Client-Anwendung für einige Zeit das bestimmte Abonnement wird automatisch abgemeldet.
Wenn der Client aus irgendeinem unerwarteten Grund für einige Zeit nicht erreichbar ist, muss ich nur abgemeldete Benutzer abonnieren, anstatt alle Benutzer zu abonnieren.
Mein Problem ist jetzt, wie Abwesende Benutzer/Abonnenten IDs von EWS bekommen? Ich konnte nichts hilfreich in Bezug auf diese in MSDN-Dokumentation finden.
Jeder weiß es?
MSDN Reference enter link description here
Danke.Yes ich dachte auch, Status-Ereignis zu verwenden, um einen Zeitstempel zu protokollieren. Und wenn ich nicht mehr als 3 Minuten von der EWS hören konnte, dann muss ich es wieder mit bestimmten Benutzer abonnieren.Aber ich wundere mich Warum hält EWS keine Referenzen auf die Abmelde-ID? Weil es jetzt abonnierte IDs behält, so dass es zum Client zurückrufen kann. – Thabo
Ich denke, es ist nur eine Frage der Ressourcenschonung. Wenn es Ihnen nach 4 Versuchen keine Benachrichtigung senden kann, gibt es Sie auf und geht zu denen, die es kontaktieren kann. Denken Sie daran, dass die Clientzugriffsserver etwas unzuverlässig sind - ich habe viele Fälle gesehen, in denen sie abstürzen oder auf andere Weise Subskriptionen verwerfen. Mit Exchange Online wird es richtig verrückt. Selbst bei Dingen wie Streaming-Benachrichtigungen ist es die Verantwortung der App (d. H. IHR), zu erkennen, wenn ein Abonnement möglicherweise nicht die erwarteten Ergebnisse erhält und erneut abonniert. – pjneary