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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top