Umgang von Fehlern im Zusammenhang mit Benachrichtigungen in EWS in Exchange

Erfahren Sie, wie Sie benachrichtigungsbezogene Fehler in Anwendungen behandeln, die Sie mithilfe der EWS Managed API oder EWS in Exchange entwickeln.

Wenn Ihre Anwendung abonniert und Benachrichtigungen erhält, müssen Sie möglicherweise benachrichtigungsbezogene Fehler behandeln. Sie können diese Fehler zur Laufzeit oder während der Entwicklung Ihrer EWS-Anwendung behandeln.

Tabelle 1. Fehler im Zusammenhang mit Benachrichtigungen und deren Behandlung

Fehler Tritt auf, wenn Sie versuchen, ... Behandeln von...
ErrorExceededConnectionCount Öffnen Sie eine Verbindung, um Ereignisse abzurufen, wenn das Konto das Verbindungslimit für offene Streamingverbindungen erreicht hat.
  • Verwenden des Identitätswechsels zum Öffnen von Verbindungen.
  • Verwenden sie weniger Verbindungen zum Abrufen von Ereignissen. Maximieren Sie die Anzahl der Abonnements in jeder Verbindung , indem Sie affinity verwenden und maximal 200 Abonnement-IDs in derselben Gruppe platzieren. Sie können dann dieselbe Verbindung verwenden, um Ereignisse für die gesamte Gruppe abzurufen, wodurch die Anzahl der erforderlichen Verbindungen reduziert wird.
  • Ändern des Werts von HangingConnectionLimit in der web.config-Datei für Exchange lokal, um den Standardwert von drei geöffneten Verbindungen zu überschreiben. Exchange Online verfügt über einen Standardmäßigen HangingConnectionLimit von 10, der nicht konfigurierbar ist.
ErrorExceededSubscriptionCount Erstellen Sie zu viele Abonnements. Der EwsMaxSubscriptions-Einschränkungsrichtlinienparameter bestimmt die maximale Anzahl von Abonnements, die ein Konto erstellen kann.
ErrorInvalidSubscriptionRequest Erstellen Sie Abonnements für mehrere Postfächer oder mehrere Ordner aus einer einzelnen Anforderung. Erstellen eines Abonnements für einen einzelnen öffentlichen Ordner oder ein einzelnes Postfach in einer einzelnen Anforderung.
ErrorInvalidWatermark Abrufen von Ereignissen mithilfe eines ungültigen Wasserzeichens.
  • Überprüfen der Abonnement-ID, die in einer vorherigen Antwort zurückgegeben wurde.
  • Stellen Sie sicher, dass Sie die Abonnement-ID für das richtige ExchangeService-Objekt senden.
  • Erstellen eines neuen Abonnements.
ErrorMissedNotificationEvents Ruft Ereignisse ab, wenn einige vorherige Ereignisse verpasst wurden. Vergleich der erweiterten Ordnereigenschaften PR_LOCAL_COMMIT_TIME_MAX (0x670a) und PR_DELETED_COUNT_TOTAL (0x670b), um zu ermitteln, welche Änderungen übersehen wurden, und Erstellen eines neuen Abonnements.
ErrorProxyRequestNotAllowed Abonnieren Sie Ereignisse für einen Benutzer in einer Batchanforderung, dessen Postfach an eine andere Website verschoben wurde. Verwenden der AutoErmittlung zum Wiederentdecken von ExternalEwsUrl oder EwsPartnerUrl und Erstellen eines neuen Abonnements.
ErrorReadEventsFailed Ruft Ereignisse aus einem Abonnement ab, die nicht gefunden werden können. Verwenden der AutoErmittlung zum Wiederentdecken von ExternalEwsUrl oder EwsPartnerUrl und Erstellen eines neuen Abonnements.
ErrorServerBusy Überschreitung der Drosselungsgrenzwerte. Beachten Sie Folgendes hinsichtlich der Drosselung:
  • Der EwsMaxSubscriptions-Einschränkungsgrenzwert gibt die maximale Anzahl von Push-, Pull- oder Streamingbenachrichtigungsabonnements an, die gleichzeitig aktiv sein können. Dies ist der Wert von Postfachabonnements, nicht die Anzahl einzelner Ordnerabonnements in einem Postfachabonnement. Ab den Dienstpostfachversionen 14.16.0135 und 14.15.0057.000 kann ein Postfach, das von Exchange Online oder Exchange Online als Teil von Office 365 gehostet wird, bis zu 20 Abonnements haben, und ein lokales Exchange 2013-Zielpostfach kann bis zu 5000 Abonnements haben.
  • Der EwsMaxConcurrency-Einschränkungsgrenzwert gibt die maximale Anzahl aktiver Anforderungen für Nicht-Streamingverbindungen an und weist einen Standardwert von 27 auf.
  • Der Standardgrenzwert für offene Streamingverbindungen beträgt zehn.
ErrorSubscriptionNotFound Ruft Ereignisse für ein Abonnement ab, die nicht gefunden werden können. Das Abonnement ist möglicherweise abgelaufen, der EWS-Prozess wurde möglicherweise neu gestartet oder ein ungültiges Abonnement wurde übergeben.
  • Vergewissern Sie sich, dass Sie dieselbe Abonnement-ID verwenden, die in einer vorherigen Antwort zurückgegeben wurde.
  • Stellen Sie sicher, dass Sie die Abonnement-ID für das richtige ExchangeService-Objekt senden.
  • Erstellen eines neuen Abonnements.
ServiceLocalException Fügen Sie einem neuen Ordner ein Abonnement hinzu, während eine Abonnementverbindung für einen anderen Ordner geöffnet ist. Ändern Ihres Abonnements, um alle Ordner im Postfach anstelle eines bestimmten Ordners zu abonnieren.
ServiceResponseException Ruft Ereignisse für ein Abonnement ab, die sich nicht im Exchange-Speicher befinden können.
  • Vergewissern Sie sich, dass Sie dieselbe Abonnement-ID verwenden, die in einer vorherigen Antwort zurückgegeben wurde.
  • Stellen Sie sicher, dass Sie die Abonnement-ID für das richtige ExchangeService-Objekt senden.

Wiederherstellung nach verlorenen Abonnements

Wenn ein Abonnement verloren geht oder nicht mehr zugänglich ist, empfiehlt es sich, ein neues Abonnement zu erstellen und das alte Wasserzeichen nicht in das neue Abonnement einzuschließen. Das erneute Abonnieren mit dem alten Wasserzeichen führt zu einer linearen Überprüfung auf Ereignisse, 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 erweiterten Ordnereigenschaften, die Sie überprüfen sollten, sind PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) und PR_DELETED_COUNT_TOTAL (0x670b0003). Dazu können Sie eine erweiterte Eigenschaftsdefinition erstellen.

Siehe auch