Dove sta andando il mio abbonamento in streaming?
-
29-10-2019 - |
Domanda
Sto utilizzando Microsoft Exchange Web Services 1.1 SDK e utilizzando la connessione di streaming per iscriverti alla nuova notifica di posta. Tutto funziona bene per ricevere le notifiche, ma ricevo errori ogni tanto sul mio scambio non riuscendo a trovare il mio abbonamento.
Di seguito è riportato il codice che sto usando per inizializzare il mio abbonamento e gli eventi che utilizzo.
public void Subscribe()
{
var locateMailbox = new Mailbox
{
Address = "myemail"
};
var folderId = new FolderId(WellKnownFolderName.Inbox, locateMailbox);
var foldersToWatch = new[] {folderId};
StreamingSubscription streamingSubscription =
_exchangeService.SubscribeToStreamingNotifications(foldersToWatch, EventType.NewMail);
// Timeout is set at 1 minute intentionally
var streamingConnection = new StreamingSubscriptionConnection(_exchangeService, 1);
streamingConnection.AddSubscription(streamingSubscription);
streamingConnection.OnSubscriptionError += ResolveError;
streamingConnection.OnDisconnect += Reconnect;
streamingConnection.Open();
}
public void Reconnect(object sender, SubscriptionErrorEventArgs disconnectEventArgs)
{
if (!((StreamingSubscriptionConnection)sender).IsOpen)
((StreamingSubscriptionConnection)sender).Open();
}
public void ResolveError(object sender, SubscriptionErrorEventArgs errorEventArgs)
{
var streamingSubscriptionConnection =
(StreamingSubscriptionConnection) sender;
if (!streamingSubscriptionConnection.IsOpen)
streamingSubscriptionConnection.Open();
}
ServiceLocalException - You must add at least one subscription to this connection before it can be opened.
Quell'eccezione parla da sola e sono consapevole che posso semplicemente creare un altro abbonamento all'interno di Reconnect()
. Spero che qualcuno possa aiutarmi a capire dove sta andando l'abbonamento. Non riesco a immaginare un prodotto come Exchange 2010, perderebbe semplicemente il mio abbonamento. Inoltre, non riesco a fissare l'errore. A volte posso mantenere il mio abbonamento attivo per 10 minuti e altre volte ricevo un errore sul fatto che il mio abbonamento non è valido dopo 2-3 minuti.
Per quello che vale la pena usare Exchange 2010 SP1.
Nessuna soluzione corretta