"ERROR Umbraco.Core.Dynamics.DynamicInstanceHelper" 每 30 秒记录一次错误
"ERROR Umbraco.Core.Dynamics.DynamicInstanceHelper" error logged every 30 seconds
我目前在 Umbraco 中遇到以下错误:
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)
它大约每 30 秒记录一次,一遍又一遍,一整天。我想知道是否有人知道这是什么意思?该站点似乎 运行 没问题,但我有点担心,因为我的其他 Umbraco 安装的 none 有这个特殊错误。
问题是您正在动态调用扩展方法。有关详细信息,请参阅这些帖子。他们对我很有帮助。
你应该可以使用
Enumerable.FirstOrDefault(myListOfDynamicStuff);
而不是
myListOfDynamicStuff.FirstOrDefault();
扩展方法在编译时绑定。为了正确绑定,类型必须匹配。在您的情况下,您的 myListOfDynamicStuff
变量需要实现 IEnumerable
。但是,您的 myListOfDynamicStuff
是动态的,类型不匹配。我喜欢在 Umbraco 中使用更强类型的 IPublishedContent。您可以像 Model.Content
一样获取当前页面,您可以使用 umbracoHelper,Umbraco.TypedContent()
通过 id 获取节点。
Umbraco 已经为动力学实现了自己的 FirstOrDefault,这不是一种扩展方法。我的猜测是您在 web.config 中缺少 dll、using 语句或某种引用。我会下载一个与您的网站相匹配的 umbraco 原版副本,然后对所有文件进行比较。我最喜欢的工具是 Beyond Compare。特别注意 /bin 中的 dll 以及根 Web.config 或 /Views 目录中的 Web.config 中丢失的任何内容。
我目前在 Umbraco 中遇到以下错误:
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)
它大约每 30 秒记录一次,一遍又一遍,一整天。我想知道是否有人知道这是什么意思?该站点似乎 运行 没问题,但我有点担心,因为我的其他 Umbraco 安装的 none 有这个特殊错误。
问题是您正在动态调用扩展方法。有关详细信息,请参阅这些帖子。他们对我很有帮助。
你应该可以使用
Enumerable.FirstOrDefault(myListOfDynamicStuff);
而不是
myListOfDynamicStuff.FirstOrDefault();
扩展方法在编译时绑定。为了正确绑定,类型必须匹配。在您的情况下,您的 myListOfDynamicStuff
变量需要实现 IEnumerable
。但是,您的 myListOfDynamicStuff
是动态的,类型不匹配。我喜欢在 Umbraco 中使用更强类型的 IPublishedContent。您可以像 Model.Content
一样获取当前页面,您可以使用 umbracoHelper,Umbraco.TypedContent()
通过 id 获取节点。
Umbraco 已经为动力学实现了自己的 FirstOrDefault,这不是一种扩展方法。我的猜测是您在 web.config 中缺少 dll、using 语句或某种引用。我会下载一个与您的网站相匹配的 umbraco 原版副本,然后对所有文件进行比较。我最喜欢的工具是 Beyond Compare。特别注意 /bin 中的 dll 以及根 Web.config 或 /Views 目录中的 Web.config 中丢失的任何内容。