Asp.net MVC5 WebRole после развертывания в облаке Azure, работает на @Scripts.Render

У меня есть облачный сервис с Asp.Net MVC 5 Web Role и 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 Logs на WebRole, я вижу эту ошибку:

неверное имя файла для мониторинга файлов 'E:\sitesroot\0\Scripts

При удаленном входе в экземпляр я вижу, что папка Scripts находится именно по этому пути.

Удаление @Script.Render страница загружается нормально. @Style.Render на той же странице работает.

Я попытался выполнить развертывание в режиме отладки и в режиме выпуска, как в промежуточной версии.

Также попытался изменить в Web.config свой

compilation debug="true" and false

без успеха. Есть идеи, почему это могло произойти? Спасибо

2 ответа

Решение

После нескольких дней тестов я обнаружил, что проблема в пакете WEBGREASE. Обновление приведет к проблеме даже в новом новом проекте. Пока удаление и повторная установка предыдущей версии решили проблему.

Попробуйте удалить все, кроме jquery, из пакета jquery. Затем создайте новый пакет для jquery-зависимых сценариев (knockout, jquery.signalR & modernizr) и отобразите его после пакета jquery.

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