【问题标题】:Orchard CMS Duplicate Content ErrorOrchard CMS 重复内容错误
【发布时间】:2016-07-28 19:41:00
【问题描述】:

我们有一个使用 Orchard CMS v1.8 构建的网站。我们遇到过一些情况,其中管理内容的人无法将更改保存到主页。他们收到以下错误。

发生了未处理的异常,请求已终止。请刷新页面。如果错误仍然存​​在,请返回 序列包含多个匹配元素 System.InvalidOperationException:序列在 System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable1 source, Func2 谓词) 中包含多个匹配元素,位于 c:\Orchard\src\ 中的 Orchard.ContentManagement.DefaultContentManager.BuildNewVersion(ContentItem existingContentItem) Orchard\ContentManagement\DefaultContentManager.cs:Orchard.ContentManagement.DefaultContentManager.Get(Int32 id,VersionOptions 选项,QueryHints 提示)的第 450 行,在 c:\Orchard\src\Orchard\ContentManagement\DefaultContentManager.cs:Orchard.Core 的第 234 行.Contents.Controllers.AdminController.EditPOST(Int32 id, String returnUrl, Action1 conditionallyPublish) in c:\Orchard\src\Orchard.Web\Core\Contents\Controllers\AdminController.cs:line 308 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 参数) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionIn System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters 的 voker.AsyncInvocationWithFilters.b__3f()。c__DisplayClass48.b__41() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters。c__DisplayClass48.b__41() 在 System。 Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.c__DisplayClass48.b__41()

如何消除 SingleOrDefault() 调用中返回的额外记录?我不知道 Orchard 背后的数据库结构足以找到“内容记录”,但如果我能够找到它们,我可以删除额外的记录。

谢谢!

【问题讨论】:

    标签: orchardcms orchardcms-1.8


    【解决方案1】:

    此错误的原因是您有多个版本的相同内容项,其值为Latest = 1(果园使用此值确定内容项的最新版本),您可以运行以下查询来解决它查找重复版本:

    SELECT *
    FROM Orchard_Framework_ContentItemVersionRecord
    WHERE ContentItemRecord_id = @Id
    

    然后确保只有一条记录,其值为Latest = 1、published = 1,并且Number 是按顺序排列的,没有重复。

    仅供参考,在查询中使用值Id 用于有错误的内容项。

    【讨论】:

    • 你知道它是如何进入这种状态的吗?我不知道网站管理员是否在做某事,或者Orchard是否存在错误。
    • 多半是一个bug,当多人同时保存同一个可草稿内容时,果园大部分情况下会正确处理,但在极少数情况下不会,希望对您有所帮助.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多