我遇到的是以编程方式在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 add a contact to list from listmanager),但这似乎会让事情变得更糟,我在添加删除联系人后直接得到了问题。使用TryLoadContact异常第三次尝试AddRecipient方法错误。