稍后为EWS恢复PullSubscription

时间:2014-07-12 21:38:08

标签: java c# exchange-server exchangewebservices

所有代码示例我都看到过像这样的工作

  • 订阅pullsubscription
  • 取回subscriptionID,水印

  • 现在遍历getEvents()直到完成,更新水印

  • 可能取消订阅。

简而言之,他们假设您正在进行单个线程/进程,并且 不需要再次使用相同的水印/订阅ID。 API本身没有" resumePullScription(subscriptionID,watermark)。它只是 已开始订阅(文件夹,事件,水印)。我不清楚我是否可以 之后再使用该水印与另一个beginSubscribe,因为订阅ID 无法提供。

  • 我想订阅并在时间T0获得水印
  • 在另一个时间T1,在超时间隔内我想再次获取事件。这是一个单独的线程,因此我需要重新连接到现有的订阅/水印。

似乎我有两个选择时间T1

  • 取消订阅@时间T0,然后用水印重新订阅@时间T1,但由于取消订阅不会丢失水印?
  • 重新订阅仅仅通过水印,但是ews会非常聪明地连接相同的订阅吗?或者水印会被忽略?或订阅预算会增长..?

无论如何,订阅到期时会发生什么事情并不十分清楚。我会假设水印会去,但我看到声称水印将存活30天。那么,什么是订阅ID?

1 个答案:

答案 0 :(得分:1)

EWS Manaaged API中的PullSubscription类没有允许你自己实例化它的构造函数(我猜这是他们设计中的一个边缘情况)。因此,如果您想要这样做,您需要使用一些ProxyCode,例如http://msdn.microsoft.com/en-us/library/office/exchangewebservices.geteventstype(v=exchg.150).aspx,或者使用原始soap和httpclass来发出GetEvents请求并解析结果。

基本上,当订阅有效时(例如在超时期限内),您应该能够使用具有SubscriptionId和有效水印的GetEvents(水印应该在30天内有效。如果您取消订阅该事件,则水印不会是有效的,因为它会从事件表中删除。

干杯 格伦