Manipulação de erros relacionados a notificações no EWS no Exchange
Descubra como lidar com erros relacionados à notificação em aplicativos que você desenvolve usando a API Gerenciada do EWS ou o EWS no Exchange.
Se o aplicativo assinar e receber notificações, talvez seja necessário lidar com erros relacionados à notificação. Você pode manipular esses erros em tempo de execução ou enquanto desenvolve seu aplicativo do EWS.
Tabela 1. Erros relacionados à notificação e como lidar com eles
Error | Ocorre quando você tenta... | Manipulá-lo pelo … |
---|---|---|
ErrorExceededConnectionCount | Abra uma conexão para obter eventos quando a conta atingiu seu limite de conexão de conexões abertas de streaming. |
|
ErrorExceededSubscriptionCount | Crie muitas assinaturas. O parâmetro de política de limitação EwsMaxSubscriptions determina o número máximo de assinaturas que uma conta pode criar. |
|
ErrorInvalidSubscriptionRequest | Crie assinaturas para várias caixas de correio ou várias pastas de uma única solicitação. | Criando uma assinatura para uma única pasta pública ou uma única caixa de correio em uma única solicitação. |
ErrorInvalidWatermark | Obtenha eventos usando uma marca d'água inválida. |
|
ErrorMissedNotificationEvents | Obtenha eventos quando alguns eventos anteriores foram perdidos. | Comparando as propriedades da pasta estendida PR_LOCAL_COMMIT_TIME_MAX (0x670a) e PR_DELETED_COUNT_TOTAL (0x670b) para determinar quais alterações foram perdidas e criando uma nova assinatura. |
ErrorProxyRequestNotAllowed | Assine eventos para um usuário em uma solicitação em lote cuja caixa de correio foi movida para outro site. | Usar o Autodiscover para reencontrar o ExternalEwsUrl ou o EwsPartnerUrl e criar uma nova assinatura. |
ErrorReadEventsFailed | Obtenha eventos de uma assinatura que não pode ser encontrada. | Usar o Autodiscover para reencontrar o ExternalEwsUrl ou o EwsPartnerUrl e criar uma nova assinatura. |
ErrorServerBusy | Exceda os limites de limitação . Esteja ciente do seguinte em relação à limitação:
|
|
ErrorSubscriptionNotFound | Obtenha eventos para uma assinatura que não pode ser encontrada. A assinatura pode ter expirado, o processo EWS pode ter sido reiniciado ou uma assinatura inválida foi passada. |
|
ServiceLocalException | Adicione uma assinatura a uma nova pasta enquanto uma conexão de assinatura está aberta em outra pasta. | Alterar sua assinatura para assinar todas as pastas na caixa de correio, em vez de uma pasta específica. |
ServiceResponseException | Obtenha eventos para uma assinatura que não pode estar localizada na loja do Exchange. |
|
Recuperando-se de assinaturas perdidas
Quando uma assinatura é perdida ou não está mais acessível, é melhor criar uma nova assinatura e não incluir a marca d'água antiga na nova assinatura. A reescrita com a marca d'água antiga causa uma verificação linear de eventos, o que é caro. Em vez disso, crie uma nova assinatura e compare as propriedades da pasta para procurar alterações de conteúdo que ocorreram entre a assinatura perdida e a nova assinatura. As propriedades de pasta estendidas que recomendamos verificar são PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) e PR_DELETED_COUNT_TOTAL (0x670b0003). Você pode fazer isso criando uma definição de propriedade estendida.
Confira também
- Assinaturas de notificação, eventos de caixa de correio e EWS no Exchange
- Transmitir notificações sobre eventos de caixa de correio usando o EWS no Exchange
- Efetuar pull de notificações sobre eventos de caixa de correio usando o EWS no Exchange
- Manter afinidade entre um grupo de assinaturas e o servidor de caixa de correio no Exchange