Gestion des erreurs liées à la notification dans EWS dans Exchange

Découvrez comment gérer les erreurs liées aux notifications dans les applications que vous développez à l’aide de l’API managée EWS ou EWS dans Exchange.

Si votre application s’abonne à et reçoit des notifications, vous devrez peut-être gérer les erreurs liées aux notifications. Vous pouvez gérer ces erreurs en cours d'exécution, ou lorsque vous développez votre application EWS.

Tableau 1. Erreurs liées aux notifications et comment les gérer

Error Se produit lorsque vous essayez de... Traiter par...
ErrorExceededConnectionCount Ouvrez une connexion pour obtenir des événements lorsque le compte a atteint sa limite de connexions de diffusion en continu ouvertes.
  • Utilisation de l’emprunt d’identité pour ouvrir des connexions.
  • Utilisation de moins de connexions pour obtenir des événements. Optimisez le nombre d’abonnements dans chaque connexion en utilisant l’affinité et en plaçant un maximum de 200 ID d’abonnement dans le même groupe. Vous pouvez ensuite utiliser la même connexion pour récupérer des événements pour l’ensemble du groupe, ce qui réduit le nombre de connexions requises.
  • Modification de la valeur de HangingConnectionLimit dans le fichier web.config pour Exchange en local afin de remplacer la valeur par défaut de trois connexions ouvertes. Exchange Online a une valeur par défaut HangingConnectionLimit de 10, ce qui n’est pas configurable.
ErrorExceededSubscriptionCount Créez trop d’abonnements. Le paramètre de stratégie de limitation EwsMaxSubscriptions détermine le nombre maximal d’abonnements qu’un compte peut créer.
ErrorInvalidSubscriptionRequest Créez des abonnements pour plusieurs boîtes aux lettres ou plusieurs dossiers à partir d’une seule requête. Création d’un abonnement pour un seul dossier public ou une seule boîte aux lettres dans une seule requête.
ErrorInvalidWatermark Obtenir des événements à l’aide d’un filigrane non valide.
  • Vérification de l’ID d’abonnement retourné dans une réponse précédente.
  • Vérifiez que vous envoyez l’ID d’abonnement pour l’objet ExchangeService correct.
  • Création d’un abonnement.
ErrorMissedNotificationEvents Obtenir des événements lorsque certains événements précédents ont été manqués. Comparaison des propriétés de dossier étendues PR_LOCAL_COMMIT_TIME_MAX (0x670a) et PR_DELETED_COUNT_TOTAL (0x670b) pour déterminer les modifications manquées, et création d’un abonnement.
ErrorProxyRequestNotAllowed Abonnez-vous aux événements d’un utilisateur dans une demande par lot dont la boîte aux lettres a été déplacée vers un autre site. Utilisation de la découverte automatique pour redécouvrir externalEwsUrl ou EwsPartnerUrl et création d’un abonnement.
ErrorReadEventsFailed Obtenir des événements à partir d’un abonnement introuvable. Utilisation de la découverte automatique pour redécouvrir externalEwsUrl ou EwsPartnerUrl et création d’un abonnement.
ErrorServerBusy Dépasser les limites de limitation . Tenez compte des points suivants en ce qui concerne la limitation :
  • La limite de limitation EwsMaxSubscriptions identifie le nombre maximal d’abonnements de notification push, d’extraction ou de diffusion en continu qui peuvent être actifs à la fois. Il s’agit de la valeur des abonnements aux boîtes aux lettres, et non du nombre d’abonnements de dossiers individuels dans un abonnement aux boîtes aux lettres. À compter des versions de boîte aux lettres de service 14.16.0135 et 14.15.0057.000, une boîte aux lettres hébergée par Exchange Online ou Exchange Online dans le cadre de Office 365 peut avoir jusqu’à 20 abonnements et une boîte aux lettres exchange 2013 locale cible peut avoir jusqu’à 5 000 abonnements.
  • La limite de limitation EwsMaxConcurrency identifie le nombre maximal de demandes actives pour les connexions sans diffusion en continu et a une valeur par défaut de 27.
  • La limite par défaut pour les connexions de streaming ouvertes est de dix.
ErrorSubscriptionNotFound Obtenir des événements pour un abonnement introuvable. L’abonnement a peut-être expiré, le processus EWS a peut-être été redémarré ou un abonnement non valide a été passé.
  • Vérification que vous utilisez le même ID d’abonnement que celui retourné dans une réponse précédente.
  • Vérifiez que vous envoyez l’ID d’abonnement pour l’objet ExchangeService correct.
  • Création d’un abonnement.
ServiceLocalException Ajoutez un abonnement à un nouveau dossier pendant qu’une connexion d’abonnement est ouverte sur un autre dossier. Modification de votre abonnement pour vous abonner à tous les dossiers de la boîte aux lettres, au lieu d’un dossier spécifique.
ServiceResponseException Obtient des événements pour un abonnement qui ne peut pas se trouver dans le magasin Exchange.
  • Vérification que vous utilisez le même ID d’abonnement que celui retourné dans une réponse précédente.
  • Vérifiez que vous envoyez l’ID d’abonnement pour l’objet ExchangeService correct.

Récupération d’abonnements perdus

Lorsqu’un abonnement est perdu ou n’est plus accessible, il est préférable de créer un nouvel abonnement et de ne pas inclure l’ancien filigrane dans le nouvel abonnement. La réabonnement avec l’ancien filigrane entraîne une analyse linéaire des événements, ce qui est coûteux. Au lieu de cela, créez un nouvel abonnement et comparez les propriétés du dossier pour rechercher les modifications de contenu qui se sont produites entre l’abonnement perdu et le nouvel abonnement. Les propriétés de dossier étendues que nous vous recommandons de vérifier sont PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) et PR_DELETED_COUNT_TOTAL (0x670b0003). Pour ce faire, vous pouvez créer une définition de propriété étendue.

Voir aussi