2016-07-28 48 views
0

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

发生未处理的异常并且请求被终止。请刷新页面。如果错误仍然存​​在,请返回 序列包含多个匹配元素 System.InvalidOperationException:序列在Orchard.ContentManagement.DefaultContentManager上的System.Linq.Enumerable.SingleOrDefault [TSource](IEnumerable 1 source, Func 2谓词)包含多个匹配元素在c:\ Orchard \ src \ Orchard \ ContentManagement \ DefaultContentManager.cs中的.BuildNewVersion(ContentItem existingContentItem):Orchard.ContentManagement.DefaultContentManager.Get(Int32 id,VersionOptions options,QueryHints hints) Orchard \ ContentManagement \ DefaultContentManager.cs:Orchard.Core.Contents.Controllers.AdminController.EditPOST(Int32 id,String returnUrl,Action 1 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, IDictionary 2 parameters)处的第234行System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor ,IDictionary 2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 2.在System.Web.Mvc.Async.AsyncControllerActionInvoker的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3f()处的System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)处调用CallEndDelegate(IAsyncResult asyncResult)。 AsyncInvocationWithFilters。 <> c__DisplayClass48.b__41()在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters。 <> c__DisplayClass48.b__41()在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters。 <> c__DisplayClass48.b__41()

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

谢谢!

回答

2

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

SELECT * 
FROM Orchard_Framework_ContentItemVersionRecord 
WHERE ContentItemRecord_id = @Id 

那么可以肯定,世界上只有一个纪录值Latest = 1published = 1,并Number是按顺序没有重复。

仅供参考,用于查询使用值Id,用于发生错误的内容项目。

+0

你知道它是如何进入这个状态的吗?我不知道网站管理员是否在做某些事情,或者Orchard是否存在错误。 –

+1

大多数情况下,这是一个错误,当多个人同时保存相同的可拖动内容项目时,在大多数情况下,果园将正确处理,但在一些情况下不会,希望这会对您有所帮助。 – mdameer