2016-07-28 12 views
0

Wir haben eine Website mit Orchard CMS v1.8 gebaut. Wir hatten einige Fälle, in denen die Person, die Inhalte verwaltet, keine Änderungen an einer Seite speichern konnte. Sie erhalten den folgenden Fehler.Orchard CMS Duplicate Content Fehler

Eine nicht behandelte Ausnahme ist aufgetreten und die Anforderung wurde beendet. Bitte aktualisieren Sie die Seite. Wenn der Fehler weiterhin besteht, gehen Sie zurück Sequenz enthält mehr als ein übereinstimmendes Element System.InvalidOperationException: Sequenz enthält mehr als ein übereinstimmendes Element bei System.Linq.Enumerable.SingleOrDefault [TSource] (IEnumerable 1 source, Func 2 Prädikat) bei Orchard.ContentManagement.DefaultContentManager .BuildNewVersion (ContentItem existingContentItem) in c: \ Obstgarten \ src \ Orchard \ ContentManagement \ DefaultContentManager.cs: Zeile 450 bei Orchard.ContentManagement.DefaultContentManager.Get (Int32-ID, VersionOptions-Optionen, QueryHints-Hinweise) in c: \ Orchard \ src \ Orchard \ ContentManagement \ DefaultContentManager.cs: Zeile 234 bei 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 Parameter) bei 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.CallEndDelegate (IAsyncResult asyncResult) um System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod (IAsyncResult asyncResult) um System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3f() um System.Web.Mvc.Async.AsyncControllerActionInvoker. AsyncInvocationWithFilters. <> c__DisplayClass48.b__41() bei System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters. <> c__DisplayClass48.b__41() bei System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters. <> c__DisplayClass48.b__41()

Was kann ich tun, um die zusätzliche Datensatz elimiate (s) in der SingleOrDefault() zurückrufen? Ich kenne die Datenbankstruktur hinter Orchard nicht genug, um die "Inhaltsdatensätze" zu finden, aber wenn ich sie finden könnte, könnte ich die zusätzlichen Datensätze löschen.

Danke!

Antwort

2

Die Ursache für diesen Fehler, dass Sie mehr als eine Version des gleichen Inhaltselements mit Wert Latest = 1 haben (Obstgarten diesen Wert verwenden, um die neueste Version für Inhaltselement zu ermitteln), können Sie die folgende Abfrage ausführen, um zu finden die doppelten Versionen:

SELECT * 
FROM Orchard_Framework_ContentItemVersionRecord 
WHERE ContentItemRecord_id = @Id 

dann sicher sein, dass nur ein Datensatz mit dem Wert ist Latest = 1, published = 1 und Number ist in Folge ohne Duplikate.

FYI, in der Abfrage verwenden Wert Id für Inhaltselement, das den Fehler hat.

+0

Haben Sie eine Idee, wie es in diesen Zustand kommt? Ich weiß nicht, ob die Website-Manager etwas tun oder ob es einen Fehler in Orchard gibt. –

+1

Meistens ist es ein Fehler, wenn mehr als eine Person den gleichen formbaren Inhaltsgegenstand gleichzeitig speichert, in den meisten Fällen wird Obstgarten es richtig handhaben, aber in kleinen Fällen nicht, hoffe das wird dir mehr helfen. – mdameer

Verwandte Themen