我的應用程序使用EWS API和Streaming Subscription,並且一切正常,這對我來說是一個問題,因爲我無法執行恢復代碼爲OnSubscriptionError事件。如何觸發訂閱錯誤,以測試Exchange Web服務恢復
這裏是我用來認購流通知
private void SetStreamingNotifications(List<FolderId> folder_ids)
{
streaming_subscriptions_connection = new StreamingSubscriptionConnection(exchange_service, 30);
streaming_subscriptions_connection.OnDisconnect += OnDisconnect;
streaming_subscriptions_connection.OnSubscriptionError += OnSubscriptionError;
streaming_subscriptions_connection.OnNotificationEvent += OnNotificationEvent;
foreach (var folder_id in folder_ids)
{
StreamingSubscription sub = exchange_service.SubscribeToStreamingNotifications(
new[] { folder_id },
EventType.Created,
EventType.Modified,
EventType.Deleted,
EventType.Moved,
EventType.Copied
);
streaming_subscriptions_connection.AddSubscription(sub);
}
streaming_subscriptions_connection.Open();
}
private void OnSubscriptionError(object sender, SubscriptionErrorEventArgs args)
{
/* What exceptions can i expect to find in "args.Exception" */
/* Can the streaming subscription be recovered or do i need to create a new one? */
}
所以我的問題是我怎麼可以觸發訂閱錯誤,所以我可以保證我的代碼可以恢復在可能的情況並記錄代碼/警報何時不可能?
編輯
繼從@ kat0r評論我覺得我應該補充:
我目前正在測試針對交易所2013年還打算測試針對Exchange 2010 SP1中。
感謝您的反饋,但我一直未能觸發OnSubscriptionError事件。 1)我試圖觸發限制,我使用了79個訂閱,因爲這是我訪問過的所有帳戶,並沒有觸發該事件。 2)我無法弄清楚如何使用SubscriptionId來取消訂閱使用EWS API的另一個進程。 3)這會觸發OnDisconnect事件。 – Robert
另一方面,如果我在循環內移動StreamingSubscriptionConnection,爲每個文件夾創建一個文件夾,那麼在創建10個StreamingSubscriptionConnection後會出現以下錯誤:您的文件夾已超出可用併發連接。一旦您的其他請求完成,請再試一次。 – Robert
Office365最多有10個訂閱。 – kat0r