2016-07-28 46 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