如何使用EWS删除Exchange会议并通知与会者(如何获取会议的正确ID)

时间:2015-06-24 11:31:01

标签: exchange-server exchangewebservices

如果我使用EWS创建会议,我会获得ID,我可以使用它来删除或稍后更新。它运行良好,并将所有通知发送给与会者。

但是,如果我从FindItems请求获取ID,它将返回不同的ID。这个新ID以不同的方式工作。我可以更新和删除项目,但没有人收到通知。 SendMeetingInvitations设置为CalendarItemCreateOrDeleteOperationType.SendToAllAndSaveCopy,但它没有帮助。

我尝试了EWS托管API和EWS。两者都是一样的。

不幸的是我无法在某些系统中保存第一个ID,因为我需要管理的一些会议是从Outlook创建的。

任何想法如何获取正确的ID或如何在我的情况下自动更新Exchange发送通知?

这就是我获取错误ID的方式:

FolderIdType folderId = GetCalendarFolderId(meetingRoomEmail);
FindItemType findItemType = new FindItemType();
findItemType.ParentFolderIds = new BaseFolderIdType[] {folderId};
findItemType.ItemShape = new ItemResponseShapeType();
findItemType.ItemShape.BaseShape = DefaultShapeNamesType.IdOnly;

ArrayOfRealItemsType arrayOfRealItemsType =
            (ArrayOfRealItemsType) ((FindItemResponseMessageType) responseMessage).RootFolder.Item;
ItemType[] itemIdsOnly = arrayOfRealItemsType.Items;

Update1 :似乎问题与我正在查看资源(会议室)日历文件夹并且根项目位于管理器的日历文件夹中这一事实有关。如果我的猜测是正确的,请告诉我如何通过会议室文件夹中的项目在管理器的文件夹中找到相关项目。

PS:Exchange 2010 SP3

1 个答案:

答案 0 :(得分:1)

是的,您的更新很有意义。您需要更新组织者的副本,以便每个人都得到通知。您应该能够使用ICalUid属性匹配它们。