【问题标题】:Sitecore throwing exception for unique index when we try to publish当我们尝试发布时,Sitecore 为唯一索引抛出异常
【发布时间】:2017-12-31 19:53:48
【问题描述】:

当我们尝试对现有站点核心项目进行任何更改并将其发布到网络数据库时,我们遇到了异常。

以下是例外- 消息:无法在具有唯一索引“ndxUnique”的对象“dbo.VersionedFields”中插入重复的键行。重复键值为 (48338b8b-7bfb-44e4-9715-3bafc826abfe, en, 1, b05b85e8-20a6-4f1c-9a04-1645d9a262b4)。

语句已终止。 来源:Sitecore.Kernel 在 Sitecore.Data.DataProviders.Sql.DataProviderCommand.ExecuteNonQuery() 在 Sitecore.Data.DataProviders.Sql.SqlDataApi.c__DisplayClass15.b__14() 在 Sitecore.Data.DataProviders.NullRetryer.Execute[T](Func1 action, Action recover) at Sitecore.Data.DataProviders.Sql.SqlDataProvider.WriteVersionedField(ID itemId, FieldChange change, DateTime now, Boolean fieldsAreEmpty) at Sitecore.Data.DataProviders.Sql.SqlDataProvider.UpdateItemFields(ID itemId, ItemChanges changes) at Sitecore.Data.DataProviders.Sql.SqlDataProvider.<>c__DisplayClass1d.<SaveItem>b__1b() at Sitecore.Data.DataProviders.NullRetryer.ExecuteNoResult(Action action, Action recover) at Sitecore.Data.DataProviders.Sql.SqlDataProvider.SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context) at Sitecore.Data.DataProviders.DataProvider.SaveItem(ItemDefinition item, ItemChanges changes, CallContext context, DataProviderCollection providers) at Sitecore.Data.DataSource.SaveItem(ID itemID, ItemChanges changes) at Sitecore.Data.Engines.EngineCommand2.Execute() 在 Sitecore.Data.Engines.DataEngine.SaveItem(项目项) 在 Sitecore.Data.Managers.ItemProvider.SaveItem(项目项) 在 Sitecore.Data.Items.ItemEditing.AcceptChanges(布尔更新统计,布尔静默) 在 Sitecore.Data.Items.EditContext.Dispose() 在 Sitecore.Publishing.PublishHelper.CopyToTarget(项目源版本) 在 Sitecore.Publishing.PublishHelper.PublishVersionToTarget(项目 sourceVersion,项目 targetItem,布尔 targetCreated) 在 Sitecore.Publishing.Pipelines.PublishItem.PerformAction.ExecuteAction(PublishItemContext 上下文) 在 Sitecore.Publishing.Pipelines.PublishItem.PerformAction.Process(PublishItemContext 上下文) 在(对象,对象[]) 在 Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) 在 Sitecore.Publishing.Pipelines.PublishItem.PublishItemPipeline.Run(PublishItemContext 上下文) 在 Sitecore.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable1 entries, PublishContext context) at Sitecore.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable1 个条目,PublishContext 上下文) 在 Sitecore.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable1 entries, PublishContext context) at Sitecore.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable1 个条目,PublishContext 上下文) 在 Sitecore.Publishing.Pipelines.Publish.ProcessQueue.ProcessEntries(IEnumerable`1 条目,PublishContext 上下文) 在 Sitecore.Publishing.Pipelines.Publish.ProcessQueue.Process(PublishContext 上下文)

有人知道吗?

【问题讨论】:

  • 不确定我的建议是否最好,但尝试从网络数据库中的“dbo.VersionedFields”表中删除相应的行。
  • 是的。这是解决此问题的 hack,但我不想直接从 Web DB 中删除内容,因为它可能会导致新问题。

标签: c# sitecore sitecore7.2


【解决方案1】:

终于得到了 Sitecore 支持的解决方案。基本上版本字段也应该出现在索引列中。我们没有对此进行任何手动更改,但它以某种方式发生了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 2017-10-05
    • 2015-06-23
    • 2020-11-11
    • 2014-07-11
    • 2022-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多