Магазин nopCommerce с пользовательским подключаемым модулем.
NopCommerce версия: 3.9
Я разработал интернет-магазин, используя NopCommerce 3.9. Любой код, который я добавил, находится в плагине.
Магазин использует первую страницу, которую можно найти в плагине. Он опирается на маршрут под названием "home" в классе RouteProvider в плагине. Он не жалуется на этот маршрут, вместо этого он жалуется на маршрут с именем RegisterVendor, найденный в том же файле. Вот оба маршрута
routes.MapRoute("home",
"",
new { controller = "AoiVendorsHome", action = "Index" },
new[] { "Nop.Plugin.Other.AoiVendors.Controllers" });
routes.MapRoute("RegisterVendor",
"register/designer",
new { controller = "AoiExchange", action = "RegisterVendor" },
new[] { "Nop.Plugin.Other.AoiVendors.Controllers" });
Плагин устанавливается правильно, и все работает точно так, как ожидалось, на моей локальной машине.
Проблема в том, что после развертывания в Интернете он не может найти маршрут. Вот ссылка imgur, перейдите по ней, чтобы увидеть ошибку
Перезапуск сервера исправляет ошибку на некоторое время, но в конечном итоге она возвращается. Он также возвращается всякий раз, когда я повторно развертываю без перезагрузки сервера впоследствии.
У кого-нибудь есть какие-либо идеи?
Благодарю вас.
2 ответа
Мне удалось решить эту проблему, установив флажок "Удалить дополнительные файлы в месте назначения" в разделе "Параметры публикации файлов" на вкладке "Параметры" во всплывающем диалоговом окне "Публикация" в Visual Studio. Я предполагаю, что старый файл не был перезаписан и вызывал проблемы.
Маршрут "HomePage" nopCommerce регистрируется таким образом
//home page
routes.MapLocalizedRoute("HomePage",
"",
new { controller = "Home", action = "Index" },
new[] { "Nop.Web.Controllers" });
Проверьте порядок загрузки. Если ваша регистрация не выполняется первым, удалите маршрут nopCommerce "HomePage" и добавьте свой или добавьте свой сначала, используя свойство Priority объекта IRouteProvider.
MVC использует маршрут, который первым соответствует запросу.
Что касается проблемы с развертыванием, убедитесь, что ваш плагин развернут в ~/Plugins/{yourPluginFolder}, а не в папке bin Nop.Web. Плагин в папке ~/bin может быть загружен, но без гарантии.