【问题标题】:EWS and Exchange 2010 Streaming Notifications - Seeing doubleEWS 和 Exchange 2010 流式通知 - 看到双重
【发布时间】:2013-07-12 16:45:47
【问题描述】:

我正在使用 EWS Java 将应用程序与 Exchange 集成。是的,我知道,它没有得到官方支持。这一切都非常简单,我在交换服务器上设置了流式通知。但是,我遇到了一些令人头疼的问题。

首先,似乎每个事件(或一批事件)都被发送了两次。例如,如果我正在查看已修改事件的日历并创建新约会或修改约会,我将收到两个相同的通知,每个通知都有一个 ItemEvent 和一个 FolderEvent。它们绝对是一个接一个地进入的不同对象,两个事件之间的差异为零。每个对象在任何相关字段中都与前一个对象具有相同的值。唯一的区别似乎是内存地址。

其次,我希望让通知更加细化。我想查看日历项何时被修改,而不是何时创建日历项。看来我只能整体观看日历文件夹,并且已修改包含新项目。有什么办法可以更精确吗?

编辑:实际上,我发现这似乎只发生在日历文件夹中创建的会议上,并且只发生在其他与会者的会议上。两个 NotificationEventArgs,每个都有一个 FolderEvent 和一个 ItemEvent。经过进一步检查,我最近发现一个 ItemEvent 已创建,一个已修改,现在知道 Exchange 倾向于如何处理约会,这对我来说并不奇怪。这个想法是监视创建和修改的项目,尽管我认为它可能被分解为两个流订阅,或者,鉴于行为,设置为仅修改,因为无论如何都会捕获“新”约会。

无论如何,这是通过定期 SyncFolder 处理的(在提出此要求和最终设计之间发生了很大变化),最终效果很好。

【问题讨论】:

    标签: java notifications exchange-server exchangewebservices ewsjavaapi


    【解决方案1】:

    虽然我没有使用 Java 开发 EWS 的经验,但我会尝试回答您的问题,因为概念保持不变。我的代码参考将来自 C#

    对于第一部分,您遇到的行为是预期的行为。当您订阅文件夹时,您会收到有关您在创建订阅时指定的任何事件的通知。因此,如果您订阅了“日历”文件夹中的“已修改”和“创建”事件,并创建或修改了约会,您将收到 2 条通知:


    1为Folder级别改变(FolderEvent):即使你创建了一个新项目,该文件夹实际上已经被“修改”了
    1 用于物品等级变化(ItemEvent):用于已创建物品

    这两个不一样。它们可能看起来相似,都继承自“NotificationEvent”基类,但类型不同。 http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.folderevent(v=exchg.80).aspx http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.itemevent(v=exchg.80).aspx

    对于第二部分,要仅查看已修改的事件,请在创建订阅时仅选择“EventType.Modified”。如果您可以分享您的代码 sn-p 以显示您的订阅方式,那就太好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      相关资源
      最近更新 更多