Benachrichtigungsabonnements, Postfachereignisse und EWS in Exchange

Erfahren Sie mehr über Benachrichtigungsabonnements und Postfachereignisse in EWS in Exchange.

Sie können sowohl die EWS Managed API als auch Exchange-Webdienste (EWS) verwenden, um Abonnements für Benachrichtigungen zu erstellen, wenn Ereignisse in einem Postfach oder in einem oder mehreren Ordnern in einem Postfach geschehen. Es stehen drei Abonnementtypen zur Verfügung: Streamingbenachrichtigungen, Pullbenachrichtigungen und Pushbenachrichtigungen. Jeder dieser Abonnementtypen verwendet unterschiedliche Techniken, um die Benachrichtigungen zu erhalten oder abzurufen.

Erhalten von Benachrichtigungen - welche Optionen habe ich?

EWS umfasst drei Abonnementtypen, die unabhängig voneinander arbeiten, um den Client über Änderungen auf dem Server zu benachrichtigen. Unabhängig davon, welchen Abonnementtyp Sie auswählen, erhalten Sie letztendlich immer Zugriff auf dieselben Benachrichtigungsereignisse - es geht nur darum, wie Sie diese erhalten.

Tabelle 1. Abonnementtypen

Option Beschreibung Ist diese Option richtig für mich?
Streamingbenachrichtigungen
Benachrichtigungen, die vom Server über eine Verbindung gesendet werden, die für eine bestimmte Zeit geöffnet bleibt.
Streamingbenachrichtigungen werden im Allgemeinen für die meisten Anwendungen empfohlen. Sie sind Pull- und Pushbenachrichtigungen ähnlich und vereinen die Vorteile aus beiden Welten. Nachdem Sie Ihr Benachrichtigungsabonnement eingerichtet haben, bleibt die Verbindung bis zu 30 Minuten geöffnet, damit der Server Benachrichtigungen zurück an den Client schieben kann. Es ist nicht erforderlich, Updates anzufordern, wie dies bei einem Pullabonnement der Fall wäre, und Sie müssen keine Webdienst-Listeneranwendung erstellen, wie dies bei einem Pushabonnement der Fall ist.
Pullbenachrichtigungen
Benachrichtigungen, die vom Client angefordert werden.
Pullbenachrichtigungen sind im Allgemeinen für locker miteinander verbundene Clients am besten geeignet, bei denen der Client nicht zuverlässig mit dem Netzwerk verbunden ist. Pullbenachrichtigungen können einen übermäßigen Datenverkehr zwischen dem Client und dem Server verursachen, da der Client häufige Anforderungen an den Server zum Abrufen von Benachrichtigungen sendet, und nicht alle Anforderungen führen zu abgerufenen Benachrichtigungen.
Pushbenachrichtigungen
Benachrichtigungen, die vom Server an einem clientseitigen Webdienst über eine Rückrufadresse gesendet (bzw. geschoben) werden.
Pushbenachrichtigungen bieten im Allgemeine eine kürzere Benachrichtigungswartezeit als Pullbenachrichtigungen und sind für eng verbundene Clients geeignet, auf die der Server zuverlässigen Zugriff hat und wobei der Client IP-adressierbar ist. Pushbenachrichtigungen werden jedoch seit der Einführung von Streamingbenachrichtigungen in Exchange 2010 nicht mehr sehr häufig verwendet. Wenn möglich, wird empfohlen, in Zukunft anstelle von Pushbenachrichtigungen Streamingbenachrichtigungen zu verwenden. Pushbenachrichtigungen erfordern, dass Sie ein Listeneranwendung schreiben, an die die Benachrichtigungen gesendet werden an. Dies ist ein kleiner Vorteil gegenüber Pulllbenachrichtigungen dahingehend, dass Netzwerkverkehr reduziert wird, es wird jedoch ein Mehraufwand verursacht, da eine separate Anwendung erforderlich ist.

Welche EWS-Ereignisse kann ich abonnieren?

Die von Clients abonnierten Typen von EWS-Ereignissen werden von der EventType-Enumeration für die EWS Managed API oder das EventType-Element für EWS definiert. Die folgenden EWS-Ereignisse können abonniert werden:

Ein weiterer EWS-Ereignistyp, das Status-Ereignis, wird vom EventType-Element definiert, dieses Ereignis wird jedoch nicht abonniert. Es wird vielmehr vom Server gesendet, um den Status des Clients für Streaming- und Pushbenachrichtigungen zu überprüfen. Der Client muss auf dieses Ereignis reagieren, andernfalls tritt für den Client ein Timeout auf.

Eine einzige Benutzeraktion führt häufig zur Erstellung mehrerer Benachrichtigungen. Die folgende Abbildung zeigt zur Veranschaulichung einige häufige Szenarien und die für jedes Szenarion erstellten Benachrichtigungen. Clienteinstellungen haben Auswirkungen auf die empfangenen Benachrichtigungen, daher ist dies keine vollständige Liste aller Konfigurationsoptionen und der sich daraus ergebenden Benachrichtigungen.

Abbildung 1: Von Benachrichtigungsabonnements zurückgegebene Ereignistypen

Tabelle mit den Benachrichtigungen, die in gängigen Benutzerszenarien wie Empfangen neuer E-Mail, Erstellen eines neuen Ordners, Verschieben eines Ordners usw. gesendet werden.

In Abbildung 1 ist der Benachrichtigungsprozess vereinfacht dargestellt. In der Realität können mehrere Benachrichtigungen (sogar mehrere Benachrichtigungen desselben Typs) für eine einzige Benutzeraktion erstellt werden. Im Fall des Verschiebens eines Ordners werden beispielsweise drei Ordnerereignisse erstellt: eines für den geänderten Ordners, einen für den alten übergeordneten Ordner, und eines für den neuen übergeordneten Ordner. Da für einen einzigen Vorgang zahlreiche Ereignisse ausgelöst werden können, wird empfohlen, dass Sie eine Wartezeit von ein paar Sekunden in Synchronisierungsvorgängen erstellen, damit nur synchronisiert wird, wenn die Aktion abgeschlossen ist und nicht mitten in der Aktion.

Außerdem ist es wichtig zu wissen, dass sich die Konfigurationseinstellungen, die jeder Benutzer auswählt, Auswirkungen darauf haben, welche Benachrichtigungen erstellt werden. Beispielsweise werden die Frei/Gebucht-Informationen einiger Benutzer automatisch aktualisiert, und das FreeBusyChanged-Ereignis wird erstellt, wenn eine neue Besprechungsanfrage empfangen wird, sogar bevor sie das Element gelesen haben. Bei anderen Benutzern werden die Frei/Gebucht-Informationen nicht aktualisiert und das FreeBusyChanged-Ereignis wird erst erstellt, wenn die Besprechung akzeptiert wurde. Diese Einstellungen können einen wesentlichen Einfluss auf die vom Server erstellten Benachrichtigungen haben.

Wie funktionieren EWS-Benachrichtigungen?

EWS-Benachrichtigungen werden auf Abonnementbasis verarbeitet. In der Regel gibt es ein Abonnement pro Postfach, und innerhalb des Postfachabonnements können Sie einige oder alle Ordner abonnieren. Sie entscheiden, welche Art von Benachrichtigung Sie abonnieren möchten (Streaming, Pull oder Push) und welche Art von Ereignissen (NewMail, Created, Deleted, Modified usw.) Sie erhalten möchten; dann erstellen Sie ein Abonnement. Die EWS-Ereignisse werden dann asynchron vom Postfachserver an den Client gesendet. (Geschichtsstunde: Protokollereignisse sind in Exchange 2007 synchron, und Ereignisse werden auf dem Clientzugriffsserver in Exchange 2010 gespeichert).

Wie die Benachrichtigungen an den Client gesendet werden, variiert in Abhängigkeit von der Art des ausgewählten Abonnements. In diesem Abschnitt ausführlich beschrieben, wie die einzelnen Abbonementtypen funktionieren.

EWS-Streamingbenachrichtigungen

Streamingbenachrichtigungen basieren auf einer hängenden Get-Anforderung an den Server, um eine Verbindung für ein Streamingabonnement geöffnet zu lassen, damit Ereignisse, die auftreten, während die Verbindung aktiv ist, sofort an den Client gestreamt werden. Im Verlauf einer einzigen Verbindung können mehrere Benachrichtigungen gesendet werden, und die Verbindung bleibt geöffnet, oder maximal 30 Minuten. Nachdem die Verbindung abgelaufen ist, sendet der Client die hängende Get-Anforderung erneut. Abbildung 2 zeigt, wie Streamingabonnements und Streamingbenachrichtigungen funktionieren.

Abbildung 2: Übersicht über Streamingbenachrichtigungen

Abbildung der Funktionsweise von Streamingbenachrichtigungen. So richten Sie Streamingbenachrichtigungen ein: 1. Abonnieren, 2. Verbindung öffnen, 3. Auf Ereignisse warten, 4. Ereignisse empfangen, 3,4, und 5 wiederholen, 5. Verbindung schließen oder beibehalten, 6. Abo aufheben oder Zeitlimit.

Informationen zum Erstellen von Streamingbenachrichtigungen finden Sie unter Streamingbenachrichtigungen zu Postfachereignissen mithilfe von EWS in Exchange.

EWS-Pullbenachrichtigungen

Pullbenachrichtigungen basieren darauf, dass der Client in einem vom Client verwalteten Intervall nach Benachrichtigungen fragt. Dies kann zu GetEvents-Antworten ohne Benachrichtigungen führen. Abbildung 3 zeigt, wie Pullabonnements und Pullbenachrichtigungen funktionieren.

Abbildung 3: Übersicht über Pullbenachrichtigungen

Abbildung der Funktionsweise von Pullbenachrichtigungen. So richten Sie Pullbenachrichtigungen ein: 1. Abonnieren, 2. GetEvents senden, 3. Antwort empfangen, 2 und 3 wiederholen, 4. Verbindung schließen oder beibehalten, 5. Abo aufheben oder Zeitlimit.

Informationen zum Erstellen von Pullbenachrichtigungen finden Sie unter Pullbenachrichtigungen zu Postfachereignissne mithilfe von EWS in Exchange.

EWS-Pushbenachrichtigungen

Pushbenachrichtigungen basieren darauf, dass der Server Benachrichtigungen zurück an den Client schiebt. Es entsteht nur Verkehr, wenn eine Benachrichtigung vorhanden ist. Abbildung 4 zeigt, wie Pushabonnements und Pushbenachrichtigungen funktionieren.

Abbildung 4: Übersicht über Pushbenachrichtigungen

Abbildung der Funktionsweise von Pushbenachrichtigungen. So richten Sie Pushbenachrichtigungen ein: 1. Listener erstellen, 2. Abonnieren, 2. Auf Ereignisse warten, 4. Ereignisse empfangen, 5. Antwort

Wenn Sie Pushbenachrichtigungen mit Exchange 2010 verwenden, sollten Sie darüber nachdenken, die Anwendung auf die Verwendung von Streamingbenachrichtigungen zu aktualisieren, damit Sie keine separate Anwendung für das Empfangen der Ereignisse benötigen.

Wie kann ich Benachrichtigungen abonnieren?

Je nach Typ des Abonnements, das Sie erstellen möchten, steht Ihnen eine Reihe von Optionen zur Auswahl, um Benachrichtigungen zu abonnieren.

Tabelle 2. Vorgänge und Methoden für das Abonnieren von Benachrichtigungen

Abonnementtyp EWS-Vorgang EWS Managed API-Methoden Funktion der Einstellung
Streaming
Vorgang abonnieren
ExchangeService.BeginSubscribeToStreamingNotifications-Methode
ExchangeService.BeginSubscribeToStreamingNotificationsOnAllFolders-Methode
ExchangeService.SubscribeToStreamingNotificationsOnAllFolders-Methode
Erstellt eine Anforderung zum Abonnieren von Streamingbenachrichtigungen.
Pull
Vorgang abonnieren
ExchangeService.BeginSubscribeToPullNotifications-Methode
ExchangeService.BeginSubscribeToPullNotificationsOnAllFolders-Methode
ExchangeService.SubscribeToPullNotifications-Methode
ExchangeService.SubscribeToPullNotificationsOnAllFolders-Methode
Erstellt eine Anforderung zum Abonnieren von Pullbenachrichtigungen.
Push
Vorgang abonnieren
ExchangeService.BeginSubscribeToPushNotifications-Überladungsmethode
ExchangeService.BeginSubscribeToPushNotificationsOnAllFolders-Überladungsmethode
ExchangeService.SubscribeToPushNotifications-Überladungsmethode
ExchangeService.SubscribeToPushNotificationsOnAllFolders-Überladungsmethode
Erstellt eine Anforderung zum Abonnieren von Pushbenachrichtigungen.

Wie kann ich EWS-Ereignisse abrufen?

Nachdem das Abonnement erstellt wurde, ist die Art, wie die tatsächlichen Ereignisse an den Client gesendet werden,vom Abonnementtyp abhängig.

Für Streamingbenachrichtigungen muss eine Streamingabonnementverbindung erstellt werden, und das Abonnement wird dann zu der Verbindung hinzugefügt. Weitere Informationen zu diesem Prozess finden Sie unter Streamingbenachrichtigungen zu Postfachereignissen mithilfe von EWS in Exchange.

Für Pullbenachrichtigungen wurde das Abonnementobjekt initialisiert, als das Abonnement erstellt wurde, Sie müssen daher nur die GetEvent -Methode oder -Operation aufrufen, um die Ereignisse vom Server abzurufen. Weitere Informationen hierzu finden Sie unter Pullbenachrichtigungen zu Postfachereignissen mithilfe von EWS in Exchange.

In der folgenden Tabelle sind die Vorgänge und Klassen aufgeführt, die zum Abrufen von Ereignissen erforderlich sind.

Tabelle 3. Elemente und Klassen für das Herstellen einer Verbindung und das Abrufen von Ereignissen

Abonnementtyp EWS-Vorgang EWS Managed API-Methode Funktion der Einstellung
Streaming
GetStreamingEvents-Vorgang
StreamingSubscriptionConnection.AddSubscription-Methode
Erstellt eine hängende Get-Anforderung auf dem Server, auf die geantwortet wird, wenn Ereignisse auftreten.
Pull
GetEvents-Vorgang
PullSubscription.GetEvents-Methode
Ruft Pullbenachrichtigungsereignisse vom Server ab.
Push
Nicht zutreffend.
Nicht zutreffend.
Pushbenachrichtigungen werden automatisch an den Webdienst-Listener (die in der Abonnementanforderung angegebene Callback-URL) gesendet. Es müssen keine zusätzlichen Methoden oder Operationen aufgerufen werden.

Wie kann ich ein Abonnement von Benachrichtigungen kündigen?

Die folgende Tabelle enthält die Methoden, mit deren Hilfe Sie alle Abonnementtypen kündigen können.

Tabelle 4. Vorgänge und Methoden für das Kündigen von Abonnements für Benachrichtigungen

Abonnementtyp EWS EWS Managed API
Streaming
Vorgang des Kündigens von Abonnements
StreamingSubscription.BeginUnsubscribe-Methode
StreamingSubscription.EndUnsubscribe-Methode
StreamingSubscription.Unsubscribe-Methode
Pull
Vorgang des Kündigens von Abonnements
PullSubscription.BeginUnsubscribe-Methode
PullSubscription.EndUnsubscribe-Methode
PullSubscription.Unsubscribe-Methode
Push
Gibt Unsubscribe im StatusFrequency-Element der SendNotificationResponseMessage zurück
Nicht zutreffend. Lassen Sie für das Abonnement stattdessen ein Timeout auftreten.

Alternativ können Sie für jedes der Abonnements eine Zeitüberschreitung auftreten lassen.

Tabelle 5. Timeouts für Abonnements

Abonnementtyp Timeoutwert in EWS Timeoutwert in der EWS Managed API Timeoutverarbeitung
Streaming
ConnectionTimeout-Element
lifetime-Parameter des StreamingSubscriptionConnection-Konstruktors
Bei der EWS Managed API wird nach Ablauf des Timeoutswerts das OnDisconnect-Ereignis ausgelöst. Wenn die StreamingSubscriptionConnection.Open-Methode nicht aufgerufen wird, wird die Verbindung geschlossen.
Bei EWS gibt nach Ablauf des Timeoutwerts die GetUserConfigurationResponse-Nachricht den Wert ConnectionStatus "Geschlossen" zurück.
Pull
Timeout-Element
timeout-Parameter der SubscribeToPullNotification-Methode
Nachdem der Timeoutwert abgelaufen ist, löscht der Server das Abonnement.
Push
StatusFrequency-Element
frequency-Parameter der SubscribeToPushNotification-Methode
Wenn der Server keine Antwort auf eine Pushbenachrichtigung oder ein Statusping erhält, wird das Senden der Nachricht mehrere Male erneut versucht, bevor das Senden der Benachrichtiungen beendet wird. Weitere Informationen finden Sie unter StatusFrequency.

Kann ich Abonnements einschränken?

In einer lokalen Bereitstellung können Sie die Anzahl von Abonnements pro Benutzer mit dem EwsMaxSubscriptions-Einschränkungsparameter der Einschränkungsrichtlinie einschränken. Diese Richtlinie kann auf alle Benutzer oder nur bestimmte Benutzer angewendet werden. Die EwsMaxSubscriptions-Einschränkungsrichtlinie ist fürr Exchange Online nicht konfigurierbar.

Inhalt dieses Abschnitts

Siehe auch