Веб-роль Asp.net MVC5 после развертывания в облаке Azure прерывается на @Scripts.Render.
-
21-12-2019 - |
Вопрос
У меня есть облачная служба с веб-ролью Asp.Net MVC 5 и Azure SDK 2.3, предназначенная для платформы 4.5.1;Сайт отлично работает в Local.Но когда я развертываю его в облачной службе Azure, у меня возникает классическая ошибка нулевой ссылки:
В экземпляре объекта не задана ссылка на объект.Подробности исключения:System.NullReferenceException:В экземпляре объекта не задана ссылка на объект.
Ошибка источника:
Line 9: @Scripts.Render("~/bundles/jquery")
Мой BundleConfig.cs прост:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/knockout-{version}.js",
"~/Scripts/jquery.signalR-{version}.js",
"~/Scripts/modernizr-{version}.js"
));
Используя журналы Intellitrace в WebRole, я вижу эту ошибку:
неверное имя файла для мониторинга файлов 'E:\sitesroot\0\Scripts
Зайдя удаленно в инстанс вижу, что папка Scripts находится именно по этому пути.
После удаления @Script.Render страница загружается нормально.@Style.Render на той же странице работает.
Я пытался развернуть в режиме отладки и режиме выпуска, оба в промежуточном режиме.
Также попробовал изменить в Web.config
compilation debug="true" and false
безуспешно.Есть идеи, почему это могло произойти?Спасибо
Решение
После нескольких дней тестов я обнаружил, что проблема в пакете WEBGREASE.Его обновление вызовет проблему даже в новом новом проекте.На данный момент удаление и повторная установка предыдущей версии решили проблему.
Другие советы
Попробуйте удалить из пакета jquery все, кроме jquery.Затем создайте новый пакет для сценариев, зависящих от jquery (knockout, jquery.signalR и Modernizr), и визуализируйте его после пакета jquery.