2014-12-01 3 views
2

У нас возникают проблемы с MacroScripts на нашем тестовом сервере. Приложение работает локально, а код/​​базы данных должны быть идентичными между ними.Umbraco - Macro Просмотров не отображается

Невозможно отобразить большинство макросов, а не только один или два.

Ошибка загрузки MacroEngine скрипт (файл: 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 и этот вопрос озадачивает меня, поскольку он работает безответственно, но не на dev-сервере!

Любая помощь была бы очень признательна.

ответ

0

При развертывании кода Umbraco вам также необходимо убедиться, что метаданные правильно настроены на целевом сервере. Похоже, что у целевого сервера нет макроса для вашей настройки BreadCrumb - даже если у него есть код бритвы для breadcrumb.cshtml. Вы также добавили все метаданные dev на этот промежуточный сервер (типы документов, шаблоны, макросы, типы данных и т. Д.)?

Если вы настроили метаданные (типы документов, шаблоны, макросы, типы данных и т. Д.), То наиболее вероятной проблемой является то, что файл app_data \ umbraco.config кэшируется & устаревшим. Поэтому удалите его, также удалите индексы проверки (в той же папке или вложенных папках) & дайте вам пул приложений перезапустить - umbraco перестроит свои файлы в кэше & все будет собрано вместе.

Также ваше сообщение об ошибке указывает на то, что некоторые узлы не опубликованы, что также будет бесполезным.

+0

Я не уверен, что вы подразумеваете под данными dev meta? Я загрузил весь проект Visual Studio. Я только что попробовал удалить файл umbraco.config и все остальное в каталоге, и он все еще имеет ту же проблему. Разработчики, используемые для развертывания с использованием того же метода, поэтому это не новая конфигурация, а просто новое развертывание. Спасибо за ваш быстрый ответ. –

+0

Я только что проверил машину разработчиков - узел 1658 также не опубликован локально, и эта среда работает. –

+0

Вы добавили макрос в разработку? По внешнему виду вашей ошибки вы добавили макрос под названием «Breadcrumb» в свою локальную систему, но вы развернули код на тестовый сервер, а также не добавили макрос - его недостаточно, чтобы скопировать код, если у вас нет что-то вроде работы Courier, которая также устанавливает метаданные. – amelvin

0

ошибка не говорит о том, что крошка макрофайл нет - скорее, вызывает ошибку

«umbraco.MacroEngines.DynamicNodeList» не содержит определение для «Любой» на Breadcrumb.cshtml: линия 25

Кроме того, никто не упоминает базу данных напрямую, где хранится весь контент и метаданные.

Вполне возможно, что новые типы содержимого/типы документов/типы данных/etc были добавлены в локальную базу данных и не были развернуты в режиме реального времени - развертывание в Umbraco, как правило, также включает изменения базы данных.

Теперь вы знаете, где ошибка, вам нужно будет отлаживать.

Смежные вопросы