2015-07-20 14 views
80

Quando si lavora con abbonamenti pull a cartelle del calendario Office365, ho ricevuto molti messaggi ErrorReadEventsFailed nella richiesta SendNotification. Questo errore significa essenzialmente che non è più possibile trovare la sottoscrizione e che il server non dovrebbe più aspettarsi nuove notifiche.- Errore durante la ricreazione di abbonamenti di notifica

Controllare Microsoft's recommended error handling, la soluzione è utilizzare l'individuazione automatica per riscoprire ExternalEwsUrl o EwsPartnerUrl e creare un nuovo abbonamento.

Con Office365, il servizio di AutoDiscovery sembra quasi impossibile con una combinazione di account di servizio OAuth2, quindi ho utilizzato https://outlook.office365.com/EWS/Exchange.asmx come endpoint EWS principale.

Tuttavia, quando si tenta di creare una nuova sottoscrizione per la cartella di calendario specifica, continuo a ricevere un generico 500 ErrorNoRespondingCASInDestinationSite errore:

Exchange Web Services are not currently available for this request because none of the Client Access Servers in the destination site could process the request.

La parte strana è questo accade solo direttamente dopo aver ricevuto l'errore iniziale ErrorReadEventsFailed. Se riprovo, diciamo, per 30 secondi, la richiesta passa senza problemi.

Dopo aver effettuato alcune ricerche, sembrava che la maggior parte degli utenti trovasse utile assicurarsi che l'intestazione X-AnchorMailbox fosse impostata correttamente per l'utente che l'account del servizio desidera impersonare. Ho ricontrollato questa intestazione e viene effettivamente inviata la richiesta di riscrivere.

Questo problema può essere risolvibile con una soluzione di back-off esponenziale o semplicemente riprovando X volte finché la richiesta non viene superata. Mi sembra che quando l'abbonamento viene "perso", il servizio O365 ha bisogno di tempo per cambiare il DNS del server Exchange (è l'unica cosa che riesco a pensare).

Qualsiasi aiuto sarebbe molto apprezzato!

+0

Quasi un anno fa, hai trovato una soluzione per questo? –

+1

Niente di ufficiale, ma ho implementato una sorta di strategia "riprova" per tentare di mitigare il problema. Sfortunatamente, il problema si verifica anche dopo aver aggiunto l'intestazione 'X-AnchorMailbox' e utilizzando il cookie di back-end di Exchange per tutte le richieste. Sembra risolversi gli straordinari (ovunque tra 30 secondi e un giorno intero). – jstruzik

+3

Ok, ho anche implementato una strategia per i tentativi. La cosa più inquietante è che a volte quando si verifica questo errore, l'unica cosa che devo fare è ricreare un abbonamento al servizio EWS corrente. Ma quando questo non funziona, ho bisogno di creare un nuovo instans del servizio e chiamare il servizio di autodiscover per farlo funzionare. Penso che il server di Exchange stia facendo qualcosa (pulendo, ricollegando ... semplicemente indovinando). E se questo processo richiede troppo tempo, finisci con questo .. –

risposta

1

Data la documentazione all'indirizzo: https://msdn.microsoft.com/en-us/library/office/dn458788(v=exchg.150).aspx

Quando una sottoscrizione viene perso, o non è più accessibile, è meglio per creare un nuovo abbonamento e non includere il vecchio filigrana nella nuova sottoscrizione. La nuova iscrizione con la vecchia filigrana causa una scansione lineare degli eventi, che è costosa.

Invece, creare una nuova sottoscrizione e confrontare le proprietà della cartella per cercare le modifiche del contenuto che si sono verificate tra l'abbonamento perduto e il nuovo abbonamento. Le proprietà della cartella estesa che consigliamo di controllare sono PR_LOCAL_COMMIT_TIME_MAX (0x670a0040) e PR_DELETED_COUNT_TOTAL (0x670b0003).

È possibile eseguire questa operazione creando una definizione di proprietà estesa. Penso che questo possa aiutarti !!

Problemi correlati