¿A dónde va mi suscripción de transmisión?
-
29-10-2019 - |
Pregunta
Estoy utilizando el SDK 1.1 SDK 1.1 de Microsoft Exchange y usando la conexión de transmisión para suscribirme a una nueva notificación de correo. Todo funciona bien para recibir las notificaciones, pero recibo errores de vez en cuando sobre mi intercambio que no puede encontrar mi suscripción.
A continuación se muestra el código que estoy usando para inicializar mi suscripción y los eventos que uso.
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.
Esa excepción habla por sí misma y soy consciente de que simplemente puedo crear otra suscripción dentro de Reconnect()
. Espero que alguien pueda ayudarme a entender a dónde va la suscripción. No puedo imaginar que un producto como Exchange 2010 simplemente perdiera mi suscripción. Además, no puedo apuntar el error. A veces puedo mantener mi suscripción activa durante 10 minutos y otras veces recibo un error sobre que mi suscripción no sea válida después de 2-3 minutos.
Por lo que vale la pena, estoy usando Exchange 2010 SP1.
No hay solución correcta