我在Office365和本地Exchange 2010上都有Exchange,我用它们进行EWS通信。当我在Office365上向Exchange发出请求时,我会以某种格式返回响应,此格式与我从本地Exchange 2010返回的内容不同。
具体来说,我已经启动并运行了拉动通知。每分钟我发出一个GetEvents请求来获取自上次通知以来创建/修改/删除的事件。问题是,当我修改日历中的事件时,我确实收到了一个已修改事件的通知,但我得到了其中几个,我也收到了一个事件已创建的通知,但是没有,只有一个事件被修改
那么为什么EWS会发回一个包含多个修改对象和一个创建对象的响应。
这只是修改事件时的问题,创建项目工作正常。
处理通知时还需要注意哪些其他具体问题?
答案 0 :(得分:0)
有时候我希望Exchange文档不那么糟糕。
您在单个事件中获取多个项目的原因是因为该事件还包含已修改项目的父文件夹,因为Exchange中的大多数内容都发生在文件夹级别。据说你从字面上得到2种类型的对象ItemEvent和FolderEvent。您可以使用某些if语句的linq过滤它们。
lstCreatedContactIds = From e In pArgs.Events.OfType(Of ItemEvent)()
Where e.EventType = EventType.Created
Select e.ItemId