J'utilise l'API gérée par EWS pour créer et mettre à jour des contacts sur le serveur Exchange.Création/mise à jour par contact avec la photo de contact
Je crée un contact comme celui-ci (où l'utilisateur est un objet principal Active Directory avec des propriétés personnalisées):
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);
Cette partie de code est appelé à environ 500 * 500 contacts, et il prend trop longue. Je cherche à améliorer sa performance. J'ai essayé d'utiliser le batch create/update methods mais j'ai découvert qu'ils ne supportent pas les "pièces jointes", et qu'une photo de contact est une pièce jointe.
Existe-t-il un autre moyen d'abaisser les appels EWS ou d'améliorer les performances dans le cas contraire?
Existe-t-il un moyen de copier plusieurs contacts à la fois? Ou voulez-vous appeler une copie pour chaque contact? –
Bien sûr, vous pouvez copier par lots l'élément que je limiterais probablement à 50-100 par lot ou vous pourriez obtenir des délais d'attente. –