Sitecore 8.0 программно добавляет контакты в список
Я сталкиваюсь с программным добавлением и удалением контактов из списка в Sitecore. Код, который я использую для добавления, выглядит следующим образом:
public void AddContactsToList(Sitecore.ListManagement.ContentSearch.Model.ContactList contactList, List<Sitecore.ListManagement.ContentSearch.Model.ContactData> contactsToAdd)
{
ContactListManager listManager = Sitecore.Configuration.Factory.CreateObject("contactListManager", false) as ContactListManager;
using (new SecurityDisabler())
{
listManager.AssociateContacts(contactList, contactsToAdd);
}
}
По сути, у меня есть экземпляр ContentList, и с помощью ContactListManager я вызываю AssociateContacts, чтобы добавить контакты в список. Для удаления контактов у меня есть аналогичный метод, который вызывает RemoveContacts вместо этого.
Это все работает нормально, пока электронное письмо не отправлено, и в этот момент я сталкиваюсь со сценариями, в которых метод AssociateContacts не вызывает ошибок вообще, и файлы журнала выглядят как обычно, но контакт, который был недавно отправлен по электронной почте, больше не добавляется или удален из списков. Через несколько часов все снова в порядке.
Я пробовал другое решение, описанное здесь ( Sitecore 8 EXM добавляет контакт в список из listmanager), но это, кажется, ухудшает ситуацию, и я получаю проблему сразу после добавления удаления контакта. С третьей попытки ошибки метода AddRecipient с исключением TryLoadContact.