Freigeben über


GetEvents-Vorgang

Der GetEvents-Vorgang wird von Pullabonnementclients verwendet, um Benachrichtigungen vom Clientzugriffsserver anzufordern. Die GetEvents-Vorgangsantwort gibt ein Array von Elementen und Ereignissen zurück, die seit der letzten Benachrichtigung in einem Postfach aufgetreten sind.

Wichtig

Der DeleteUserConfiguration-Vorgang löst ein Verschiebungsereignis für das Ereignisbenachrichtigungssystem aus. Das Benutzerkonfigurationsobjekt wird in den Dumpster verschoben.

Hinweise

Änderungen an Kalenderelementen können zur Generierung mehrerer Ereignisse führen. Diese Ereignisse sind das Ergebnis von temporären Elementen, die im Postfach erstellt werden, frei/gebuchte Datenspeicherelemente, die im Rahmen der normalen Kalendervorgänge geändert werden, oder beides. Ereignisse für die Elementklasse "IPM. SchedulePlus.FreeBusy.BinaryData" sollte von Webdienstclients ignoriert werden. Diese temporären Elemente werden gelöscht, nachdem sie erstellt wurden. Wenn versucht wird, diese Elemente abzurufen, wird daher ein Fehler zurückgegeben, der angibt, dass das Element nicht gefunden wurde.

GetEvents-Anforderungsbeispiel

Beschreibung

Das folgende Beispiel zeigt, wie Sie die Ereignisse und Elemente anfordern, die einem Abonnement zugeordnet sind, das durch den Abonnementbezeichner und das Wasserzeichen identifiziert wird.

Code

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <GetEvents xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</SubscriptionId>
      <Watermark>AAAAAMAGAAAAAAAAAQ==</Watermark>
    </GetEvents>
  </soap:Body>
</soap:Envelope>

GetEvents-Anforderungselemente

In der Anforderung werden folgende Elemente verwendet:

Beispiel für eine erfolgreiche GetEvents-Antwort

Beschreibung

Das folgende Beispiel einer Antwort zeigt eine Benachrichtigung über das Vorhandensein von zwei neuen E-Mail-Nachrichten seit dem Senden der letzten Benachrichtigungsanforderung an den Server.

Code

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <GetEventsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                       xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:GetEventsResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Notification>
            <t:SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</t:SubscriptionId>
            <t:PreviousWatermark>AAAAAMAGAAAAAAAAAQ==</t:PreviousWatermark>
            <t:MoreEvents>false</t:MoreEvents>
            <t:NewMailEvent>
              <t:Watermark>AAAAAM4GAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T00:36:29Z</t:TimeStamp>
              <t:ItemId Id="AQApAHR" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
            <t:NewMailEvent>
              <t:Watermark>AAAAAOQGAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T01:00:50Z</t:TimeStamp>
              <t:ItemId Id="AQApAHRw" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
          </m:Notification>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Kommentare

Hinweis

Die Element- und Ordnerbezeichner wurden gekürzt, um die Lesbarkeit zu erhalten.

GetEvents-Antwortelemente

In der Antwort werden folgende Elemente verwendet:

Weitere Optionen für die Antwortnachricht des GetEvents-Vorgangs finden Sie in der Schemahierarchie. Beginnen Sie am Notification-Element .

GetEvents-Fehlerantwortbeispiel

Beschreibung

Das folgende Beispiel zeigt eine Fehlerantwort auf eine GetEvents-Anforderung .

Code

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <GetEventsResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
                         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
                         xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
      <m:ResponseMessages>
        <m:GetEventsResponseMessage ResponseClass="Error">
          <m:MessageText>Access is denied. Only the subscription owner may access the subscription.</m:MessageText>
          <m:ResponseCode>ErrorSubscriptionAccessDenied</m:ResponseCode>
          <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Hinweise

Beim Verarbeiten einer GetEvents-Anforderung führt der Clientzugriffsserver die folgenden Schritte aus:

  1. Die Abonnement-ID der Anforderung wird als gültiges Abonnement bestätigt, das auf dem Clientzugriffsserver gehostet wird. Andernfalls schlägt der GetEvents-Aufruf fehl.

  2. Die SMTP-Adresse des authentifizierten Benutzers für die Anforderung wird mit der SMTP-Adresse des Benutzers verglichen, der das Abonnement erstellt hat. Wenn sie nicht übereinstimmen, schlägt die GetEvents-Anforderung fehl.

  3. Die Abonnementwarteschlange wird nach Ereignissen abgefragt, die darauf warten, an den Client gesendet zu werden. Wenn die Warteschlange nicht leer ist, werden die ersten 50 Ereignisse aus der Warteschlange abgerufen und in eine Benachrichtigung codiert.

  4. Wenn keine Ereignisse in der Warteschlange gefunden werden, wird ein StatusEvent generiert und in eine Benachrichtigungsantwort codiert.

  5. Die Benachrichtigungsantwort wird an den Client zurückgegeben.

  6. Die ereignisse, die in der Benachrichtigung enthalten sind, werden aus der Abonnementwarteschlange entfernt, und das lokale letzte Wasserzeichen des Clientzugriffsservers für das Abonnement wird auf das Wasserzeichen des letzten ereignisses festgelegt, das zurückgegeben wird.

  7. Der Timeouttimer für das Abonnement wird zurückgesetzt.

Siehe auch

Vorgang abonnieren

Vorgang des Kündigens von Abonnements

Verwenden von Pullabonnements