2016-12-12 3 views
0

ich zur Zeit den folgenden Fehler in Umbraco erlebe:"ERROR Umbraco.Core.Dynamics.DynamicInstanceHelper" Fehler protokolliert alle 30 Sekunden

2016-12-12 11:45:56,665 [P10884/D3/T68] ERROR Umbraco.Core.Dynamics.DynamicInstanceHelper - An error occurred finding and executing extension method "FirstOrDefault" for type "Umbraco.Web.Models.DynamicPublishedContent". Types searched for extension methods were Umbraco.Web.Models.DynamicPublishedContent. 
    System.MissingMethodException: Method 'Umbraco.Web.Models.DynamicPublishedContent.FirstOrDefault' not found. 
     at Umbraco.Core.Dynamics.DynamicInstanceHelper.FindAndExecuteExtensionMethod[T](IRuntimeCacheProvider runtimeCache, T thisObject, Object[] args, String name, IEnumerable`1 findMethodsOnTypes) 
     at Umbraco.Core.Dynamics.DynamicInstanceHelper.TryInvokeMember[T](IRuntimeCacheProvider runtimeCache, T thisObject, InvokeMemberBinder binder, Object[] args, IEnumerable`1 findExtensionMethodsOnTypes) 

Es geht um den ganzen Tag alle 30 Sekunden, immer und immer wieder angemeldet ist. Ich habe mich gefragt, ob jemand weiß, was das bedeutet? Die Seite scheint gut zu laufen, aber ich bin etwas besorgt, da keine meiner anderen Umbraco-Installationen diesen speziellen Fehler aufweist.

Antwort

2

Das Problem ist, dass Sie Erweiterungsmethoden für eine dynamische aufrufen. Sehen Sie sich diese Beiträge für Details an. Sie waren hilfreich für mich.

Sie sollten

Enumerable.FirstOrDefault(myListOfDynamicStuff); 

statt

myListOfDynamicStuff.FirstOrDefault(); 
verwenden können

Die Erweiterungsmethoden sind zur Kompilierzeit gebunden. Um korrekt gebunden zu sein, müssten die Typen übereinstimmen. In Ihrem Fall müsste Ihre myListOfDynamicStuff Variable IEnumerable implementieren. Ihre myListOfDynamicStuff ist jedoch eine dynamische und die Typen stimmen nicht überein. Ich verwende gerne den stärker typisierten IP-publishedContent in umbraco. Sie können die aktuelle Seite wie Model.Content erhalten und Sie können die UmbracoHelper, Umbraco.TypedContent() verwenden, um Knoten nach ID zu erhalten.

Umbraco hat einen eigenen FirstOrDefault für Dynamik implementiert, der keine Erweiterungsmethode ist. Meine Vermutung ist, dass Sie entweder eine DLL, eine using-Anweisung oder eine Referenz irgendeiner Art in Ihrer web.config fehlen. Ich würde eine Vanilla-Kopie von Umbraco herunterladen, die zu Ihrer Site passt, und einen Vergleich aller Dateien durchführen. Mein Lieblingswerkzeug dafür ist Beyond Compare. Achten Sie besonders auf die DLLs in der Datei/bin und auf alles, was entweder im Stammverzeichnis Web.config oder in der Datei Web.config im Verzeichnis/Views fehlt.

Verwandte Themen