Asp.net Umbraco-宏视图未渲染

Asp.net Umbraco-宏视图未渲染,asp.net,asp.net-mvc-4,umbraco,Asp.net,Asp.net Mvc 4,Umbraco,测试服务器上的宏脚本出现问题。应用程序在本地工作,两者之间的代码/数据库应该相同 它无法呈现大多数宏脚本,而不是一个或两个 加载宏引擎脚本时出错(文件:Breadcrumb.cshtml) 错误日志中的堆栈跟踪显示: 2014-12-01 15:02:06,308 [22] WARN Umbraco.Web.Routing.DefaultUrlProvider -[Thread 53] Couldn't find any page with nodeId=1658. This is m

测试服务器上的宏脚本出现问题。应用程序在本地工作,两者之间的代码/数据库应该相同

它无法呈现大多数宏脚本,而不是一个或两个

加载宏引擎脚本时出错(文件:Breadcrumb.cshtml)

错误日志中的堆栈跟踪显示:

2014-12-01 15:02:06,308 [22] WARN  Umbraco.Web.Routing.DefaultUrlProvider -[Thread     53] Couldn't find any page with nodeId=1658. This is most likely caused by the page not being published.
2014-12-01 15:02:06,323 [22] WARN  umbraco.macro - [Thread 53] Error loading MacroEngine script (file: Breadcrumb.cshtml, Type: ''. Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'umbraco.MacroEngines.DynamicNodeList' does not contain a definition for 'Any'
at CallSite.Target(Closure , CallSite , Object )
at ASP._Page_macroScripts_Breadcrumb_cshtml.Execute() in d:\HTTP\Development\Sodexo\MoneyBoostPhase4\MacroScripts\Breadcrumb.cshtml:line 25
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors)
at System.Web.WebPages.WebPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at umbraco.MacroEngines.RazorMacroEngine.ExecuteRazor(MacroModel macro, INode currentPage)
at umbraco.MacroEngines.RazorMacroEngine.Execute(MacroModel macro, INode currentPage)
at umbraco.macro.loadMacroScript(MacroModel macro)
at umbraco.macro.renderMacro(Hashtable pageElements, Int32 pageId)
我是ASP新手,这个问题让我感到困惑,因为它工作得很糟糕,但不是在开发服务器上


非常感谢您的帮助。

部署Umbraco代码时,您还需要确保在目标服务器上正确设置元数据。看起来目标服务器没有为BreadCrumb设置宏,即使它有BreadCrumb.cshtml的razor代码。您是否已将所有开发人员元数据添加到此临时服务器(文档类型、模板、宏、数据类型等)

如果您已设置元数据(文档类型、模板、宏、数据类型等),则最可能的问题是您的app_data\umbraco.config文件已缓存且已过期。因此,删除它,同时删除您的检查索引(在同一个文件夹或子文件夹中),并重新启动应用程序池-umbraco将重建其缓存文件&所有内容都将合并在一起


此外,您的错误消息表明某些节点未发布-这也将毫无帮助。

错误并不是说面包屑宏文件不存在-而是导致了错误

“umbraco.MacroEngines.dynamicondelist”在Breadcrumb.cshtml:第25行中不包含“Any”的定义

此外,没有人直接提到数据库,它是存储所有内容和“元数据”的地方

很可能新的内容/文档类型/数据类型/等已添加到本地数据库,但尚未部署到实时部署中—在Umbraco中部署,通常也包括数据库更改


现在您知道错误在哪里了,您需要调试。

我不确定您所说的开发元数据是什么意思?我上传了整个VisualStudio项目。我刚刚尝试删除了umbraco.config文件&目录中的所有其他文件,但仍然存在相同的问题。开发人员过去使用相同的方法进行部署,因此这不是新的配置,只是新的部署。感谢您的快速回复。我刚刚检查了开发人员机器-节点1658也没有在本地发布,并且该环境正在工作。您是否在开发中添加了宏?从错误的外观来看,您已经在本地系统中添加了一个名为“Breadcrumb”的宏,但是您已经将代码部署到测试服务器,并且没有添加宏-复制代码是不够的,除非您已经有类似Courier的工作来设置元数据。Breadcrumb+其他宏脚本已经在系统中运行了几个月,所以我想它们最初是正确设置的。看来最新的部署已经破坏了它们。我们的部署过程是,FTP整个项目解决方案,转储数据库并重新导入。如何使用该部署模型实时获得更改?无论如何,进入测试服务器上的umbraco后台办公室,右键单击内容节点并选择“重新发布整个站点”-同时在IIS中重新启动应用程序池。希望这将刷新您的缓存并修复问题。