Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 稍后恢复EWS的PullSubscription_Java_C#_Exchange Server_Exchangewebservices - Fatal编程技术网

Java 稍后恢复EWS的PullSubscription

Java 稍后恢复EWS的PullSubscription,java,c#,exchange-server,exchangewebservices,Java,C#,Exchange Server,Exchangewebservices,我见过的所有代码示例都是这样的 订阅pullsubscription 获取订阅ID,水印 现在循环getEvents()直到完成,更新水印 可能退订 简言之,他们假设您在一个线程/进程中执行拉入操作,并且 无需再次使用相同的水印/订阅ID进行拉取。 API本身没有“resumePullScription(subscriptionID,水印)”,它只是 已开始订阅(文件夹、事件、水印)。我不清楚是否可以 以后再将该水印与另一个BeginSubscripte一起使用,因为subscription

我见过的所有代码示例都是这样的

  • 订阅pullsubscription
  • 获取订阅ID,水印

  • 现在循环getEvents()直到完成,更新水印

  • 可能退订

简言之,他们假设您在一个线程/进程中执行拉入操作,并且 无需再次使用相同的水印/订阅ID进行拉取。 API本身没有“resumePullScription(subscriptionID,水印)”,它只是 已开始订阅(文件夹、事件、水印)。我不清楚是否可以 以后再将该水印与另一个BeginSubscripte一起使用,因为subscriptionID 无法提供

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

  • 取消订阅@time T0,然后使用水印重新订阅@time T1,但水印不会因为取消订阅而丢失吗
  • 仅通过水印重新订阅,但ews是否足够聪明,可以连接到同一订阅?水印是否会被忽略?订阅预算是否会增加

无论如何,订阅到期后会发生什么情况实际上并不十分清楚。我假设水印会消失,但我看到了声称水印将存活30天的信息。那么,订阅id的意义是什么呢?

EWS管理API中的PullSubscription类没有一个构造函数允许您自己实例化它(我猜这在他们的设计中是一个比较复杂的例子)所以如果你想这样做,你需要使用一些代理代码或者使用原始soap和httpclass来发出GetEvents请求并解析结果

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

干杯
格伦

不知道为什么会被否决;)在我看来,这是一个实际的问题-所有PullSubscription的示例似乎或多或少都假设您将在一个线程中完成所有轮询,然后再也不需要在另一个进程中使用相同的水印/订阅ID组合。谢谢glen。很惊讶这是一个边界情况,但不总是这样吗;)