Manejo de errores relacionados con la notificación en EWS in Exchange

Obtenga información sobre cómo controlar los errores relacionados con notificaciones en las aplicaciones que desarrolla mediante la API administrada de EWS o EWS en Exchange.

Si la aplicación se suscribe a y obtiene notificaciones, es posible que tenga que controlar los errores relacionados con las notificaciones. Puede controlar estos errores en tiempo de ejecución, o mientras está desarrollando su aplicación de EWS.

Tabla 1. Errores relacionados con notificaciones y cómo controlarlos

Error Se produce al intentar... Controlarla por...
ErrorExceededConnectionCount Abra una conexión para obtener eventos cuando la cuenta alcanzó su límite de conexión de conexiones de streaming abiertas.
ErrorExceededSubscriptionCount Cree demasiadas suscripciones. El parámetro de directiva de limitación EwsMaxSubscriptions determina el número máximo de suscripciones que puede crear una cuenta.
ErrorInvalidSubscriptionRequest Cree suscripciones para varios buzones o varias carpetas a partir de una sola solicitud. Crear una suscripción para una sola carpeta pública o un único buzón en una sola solicitud.
ErrorInvalidWatermark Obtenga eventos mediante una marca de agua no válida.
  • Comprobar el identificador de suscripción devuelto en una respuesta anterior.
  • Asegúrese de que va a enviar el identificador de suscripción para el objeto ExchangeService correcto.
  • Crear una nueva suscripción.
ErrorMissedNotificationEvents Obtiene eventos cuando se han perdido algunos eventos anteriores. Comparar las propiedades de la carpeta extendida PR_LOCAL_COMMIT_TIME_MAX (0x670a) y PR_DELETED_COUNT_TOTAL (0x670b) para determinar qué cambios se han perdido y crear una nueva suscripción.
ErrorProxyRequestNotAllowed Suscríbase a eventos para un usuario en una solicitud por lotes cuyo buzón se haya movido a otro sitio. Usar detección automática para redescubrir ExternalEwsUrl o EwsPartnerUrl y crear una nueva suscripción.
ErrorReadEventsFailed Obtener eventos de una suscripción que no se encuentra. Usar detección automática para redescubrir ExternalEwsUrl o EwsPartnerUrl y crear una nueva suscripción.
ErrorServerBusy Superar los límites de limitación . Tenga en cuenta lo siguiente con respecto a la limitación:
  • El límite de limitación de EwsMaxSubscriptions identifica el número máximo de suscripciones de notificación de inserción, extracción o streaming que pueden estar activas a la vez. Este es el valor de las suscripciones de buzón de correo, no el número de suscripciones de carpetas individuales en una suscripción de buzón de correo. A partir de las versiones de buzón de servicio 14.16.0135 y 14.15.0057.000, un buzón hospedado por Exchange Online o Exchange Online como parte de Office 365 puede tener hasta 20 suscripciones y un buzón local de Exchange 2013 de destino puede tener hasta 5000 suscripciones.
  • El límite de limitación de simultaneidad EwsMaxCon identifica el número máximo de solicitudes activas para conexiones que no son de streaming y tiene un valor predeterminado de 27.
  • El límite predeterminado para las conexiones de streaming abiertas es diez.
ErrorSubscriptionNotFound Obtenga eventos para una suscripción que no se encuentra. Es posible que la suscripción haya expirado, que el proceso de EWS se haya reiniciado o que se haya pasado una suscripción no válida.
  • Comprobar que usa el mismo identificador de suscripción que se devolvió en una respuesta anterior.
  • Asegúrese de que va a enviar el identificador de suscripción para el objeto ExchangeService correcto.
  • Crear una nueva suscripción.
ServiceLocalException Agregue una suscripción a una nueva carpeta mientras una conexión de suscripción está abierta en otra carpeta. Cambiar la suscripción para suscribirse a todas las carpetas del buzón, en lugar de a una carpeta específica.
ServiceResponseException Obtener eventos para una suscripción que no se puede encontrar en el almacén de Exchange.
  • Comprobar que usa el mismo identificador de suscripción que se devolvió en una respuesta anterior.
  • Asegúrese de que va a enviar el identificador de suscripción para el objeto ExchangeService correcto.

Recuperación de suscripciones perdidas

Cuando se pierde una suscripción o ya no es accesible, es mejor crear una nueva suscripción y no incluir la marca de agua antigua en la nueva suscripción. Volver a enviar la suscripción con la marca de agua antigua provoca un examen lineal de eventos, lo que resulta costoso. En su lugar, cree una nueva suscripción y compare las propiedades de la carpeta para buscar los cambios de contenido que se produjeron entre la suscripción perdida y la nueva suscripción. Las propiedades de carpeta extendidas que se recomienda comprobar son PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) y PR_DELETED_COUNT_TOTAL (0x670b0003). Para ello, cree una definición de propiedad extendida.

Vea también