我的应用程序使用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