Магазин 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 может быть загружен, но без гарантии.

Другие вопросы по тегам