Sitecore:当前联系人已锁定以进行标识

Sitecore:当前联系人已锁定以进行标识,sitecore,sitecore8,sitecore-xdb,Sitecore,Sitecore8,Sitecore Xdb,当我试图通过uniqke键请求参数识别当前联系人时: Tracker.Current.CurrentPage.Session.Identify(Page.Request.QueryString["uniquekey"]); 我得到以下例外情况: 940 15:07:33 ERROR General error when submitting contact. Exception: System.InvalidOperationException Message: A contact is lo

当我试图通过uniqke键请求参数识别当前联系人时:

Tracker.Current.CurrentPage.Session.Identify(Page.Request.QueryString["uniquekey"]);
我得到以下例外情况:

940 15:07:33 ERROR General error when submitting contact.
Exception: System.InvalidOperationException
Message: A contact is locked by another operation.
Source: Sitecore.Analytics.MongoDB
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbContactStorage.LoadContactIdentifier(ID contactId, LeaseOwner leaseOwner)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.SaveContactWithIdentifier(IContact contact, ContactSaveOptions saveOptions)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.<>c__DisplayClass9.<SaveContact>b__7()
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.Try(Action action)
   at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.SaveContact(IContact contact, ContactSaveOptions saveOptions)
   at Sitecore.Analytics.Data.ContactRepository.SaveContact(Contact contact, ContactSaveOptions options)
   at Sitecore.Analytics.Tracking.ContactManager.SubmitContact(Contact contact, ContactSaveOptions options)
940 15:07:33错误提交联系人时出现一般错误。
异常:System.InvalidOperationException
消息:联系人已被其他操作锁定。
来源:Sitecore.Analytics.MongoDB
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbContactStorage.LoadContactIdentifier(ID contactId,LeaseOwner LeaseOwner)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDb数据适配器提供程序.SaveContactWithIdentifier(IContact联系人,ContactSaveOptions saveOptions)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.c__DisplayClass9.b__7()中
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.Try(操作)
在Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.SaveContact(IContact联系人,ContactSaveOptions saveOptions)
在Sitecore.Analytics.Data.ContactRepository.SaveContact(Contact Contact,ContactSaveOptions选项)
在Sitecore.Analytics.Tracking.ContactManager.SubmitContact(联系人、联系人保存选项)
我能做些什么来解决这个问题?还是有解决办法

谢谢你和亲切的问候。

为什么会发生这种情况 通常,当您忘记在配置文件
Sitecore.Analytics.Tracking.config
中设置
Analytics.ClusterName
时,您会看到此错误。这成为一个问题,因为在每个会话开始时,Sitecore都会通过在xDB中创建
租约来锁定当前联系人。它使用
Analytics.ClusterName
作为锁的标识符

您看到的错误是因为缺少租约所有者标识符,因此Sitecore实例没有意识到它拥有联系人上的租约

如果查看收藏数据库中的联系人,您可能会看到如下内容:

如您所见,
所有者
文档没有设置
标识符
字段。这表示创建租约的实体未提供标识符(其值为空字符串或
null

解决方案 要在开发环境中解决此问题,只需将
Analytics.ClusterName
Analytics.HostName
设置为访问应用程序时使用的本地域名,例如
sitecore


您可以阅读有关这些设置的更多信息


更新:Sitecore添加了一篇关于此问题的知识库文章:

您的Sitecore的确切版本是什么?我们使用的是Sitecore 8.0版本。150812