我正在使用EWS托管API在Exchange Server上创建和更新联系人。
我正在创建一个这样的联系人(其中user是具有一些自定义属性的Active Directory Principal对象):
Contact addContact = new Contact(service);
exchangeContact.NickName = GenerateNickName(user);
exchangeContact.DisplayName = exchangeContact.NickName;
exchangeContact.FileAs = user.DisplayName;
...
exchangeContact.PhoneNumbers[PhoneNumberKey.BusinessPhone] = user.Phone;
exchangeContact.PhoneNumbers[PhoneNumberKey.MobilePhone] = user.MobilePhone;
ExtendedPropertyDefinition adGuidPropDef = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "ADGUID", MapiPropertyType.String);
exchangeContact.SetExtendedProperty(adGuidPropDef, user.Guid.ToString());
if (user.ThumbnailPhoto != null)
{
exchangeContact.SetContactPicture(user.ThumbnailPhoto);
}
exchangeContact.Save(parentFolderId);
这个代码部分被调用大约500 * 500个联系人,这需要太长时间。我希望改善其性能。我尝试使用batch create/update methods,但我发现他们不支持"附件",并且联系人照片是附件。
在这种情况下,是否有其他方法可以降低EWS呼叫或改善性能?
答案 0 :(得分:0)
您无法使用任何内容批量创建附件,但当您说500 * 500个联系人时,您在500个不同的邮箱中创建了500个联系人。也就是说你在每个不同的邮箱中创建相同的500个联系人?如果是这种情况,最快的方法是在主邮箱中创建一次联系人,然后将联系人复制到每个目标邮箱。如果您批量处理一切,请添加应该提供最佳结果的附件。