0

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

Antwort

1

Ich glaube, der einzige Weg, dies zu tun, ist die Verwendung der StatusEvent (Ich nenne es den Herzschlag) zu machen. Beim Abonnieren legen Sie einen Parameter fest, der angibt, wie oft EWS an Ihren Push-HTTP-Listener gesendet werden soll. (Ich benutze 3 Minuten - YMMV.) Also nach 3 Minuten (plus ein wenig extra, um sicher zu sein), wenn Sie nicht von EWS hören, entweder durch eine StatusEvent oder eine andere "echte" Veranstaltung für ein Abonnement, dann Sie sollte für diesen Benutzer erneut abonnieren.

+0

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

+1

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