2017-02-10 9 views
0

Я пытался внести изменения в модуль. Я не мог заставить сайт, похоже, отразить эти изменения. Я думал, что могу отключить эту функцию и снова включить эту функцию, и это приведет к тому, что всякое кэширование модулей произойдет, чтобы перезагрузить модуль. Однако он полностью сломал сайт, и теперь я даже не могу включить эту функцию из инструмента командной строки orchard.exe. Я получаю ту же ошибку. В основном Autofac жалуется, что не может найти тип, который был частью этой функции. Однако, если функция удалена, я не уверен, где/почему она все еще пытается загрузить.Отключенный садовый модуль (функция)/Весь сайт сломан

Исключение:

None of the constructors found with 'Orchard.Environment.AutofacUtil.DynamicProxy2.ConstructorFinderWrapper' on type 'RCAM.Products.Drivers.FeaturedProductsWidgetPartDriver' can be invoked with the available services and parameters: 
Cannot resolve parameter 'RCAM.Products.Services.IProductService productService' of constructor 'Void .ctor(RCAM.Products.Services.IProductService)'. 

Я не могу получить в админ портала, чтобы повторно включить эту функцию. Я не могу использовать инструмент командной строки. Я попытался настроить [Settings_ShellFeatureStateRecord] на Up в базе данных, но это ничего не изменило. Он должен быть файловым, а также сохранена база данных.

Это производственная площадка и в настоящее время недоступна. Любая помощь, которую вы можете дать, будет очень признательна.

+0

Вы никогда не должны, либо внести изменения в код в производстве , Если ваше изменение не позволяет компиляции модуля (как это имеет место здесь), он приведет весь сайт вниз. Чтобы разблокировать, сделайте копию своих изменений, а затем удалите каталог модуля. Теперь сайт должен работать, минус функции этого модуля. Исправьте его на dev-машине, затем разверните эту рабочую версию. –

+0

Бертран. Спасибо за совет. Он скомпилировался на моей локальной машине-разработчике, и смена кода работала должным образом на локальном уровне. Мое предположение заключалось в том, что я мог копировать/перезаписывать новые двоичные файлы модуля в папке module/bin на производственном сервере, и он мгновенно отражал бы эти изменения так же, как в обычном приложении MVC. Это не произошло, даже после утилизации пула приложений. Ошибка, которую вы видите выше, появилась и сразу же появилась после того, как я отключил функцию в портале администратора. –

+0

Развертывание путем частичной копии файла может завершиться неудачей множеством различных тонких способов. Динамическая компиляция может быть включена или выключена на целевом сервере, возможно, ваши приложения app_data/Dependencies необходимо удалить и т. Д. Обычно рекомендуется публиковать или создавать предварительно скомпилированные перед развертыванием. –

ответ

0

Ваш вопрос не делает его понятным, если вы изменили код непосредственно на производственной площадке или если он упал после правильного развертывания, так вот мои два цента:

Если вы вносите изменения в модуль в в живую среду вы должны удалить содержимое своего App_Data/Dependencies -Folder впоследствии. Не нужно снова включать модуль.

Это будет работать только в том случае, если вы не отключили Dynamic Module loader, что должно быть сделано в производственной среде.


В противном случае убедитесь, что ваш модуль действительно скомпилирован. Вероятно, вы должны добавить свой модуль в Orchard.Web s строить зависимости, чтобы убедиться, что он действительно перекомпилируется каждый раз, когда вы запускаете Orchard на вашей машине dev.

Для удаления функции, вместо того, чтобы просто отключить его, он должен быть достаточно удалить папку модуля и удалить YourModule.dll из App_Data/зависимостями

+0

Я считаю это правильным, потому что я не понял, что могу удалить папку App_Data/Dependencies, и она будет динамически перестраиваться. благодаря –