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

У меня есть облачная служба с веб-ролью 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. Отредактируйте загрузку страницы в обычном режиме. @ Style.Render на той же странице работает.

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

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

compilation debug="true" and false

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


person Francesco Cristallo    schedule 03.06.2014    source источник
comment
Все ли файлы, указанные в пакете, развернуты (jquery, knockout, jquery.signalR и modernizr)? Мин и немин версии?   -  person viperguynaz    schedule 03.06.2014
comment
Да, файлы есть, я также проверил экземпляр через удаленное соединение, все они находятся в папке Script. Я действительно не могу понять, что это такое!   -  person Francesco Cristallo    schedule 04.06.2014


Ответы (2)


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

person Francesco Cristallo    schedule 04.06.2014
comment
Как вы отследили это в WebGrease - у меня та же проблема - обновил множество пакетов, MVC5, WeApi2 и т.д., и WebGrease обновился в процессе до версии 1.6. Когда я вернул WebGrease обратно к версии 1.5.2, все заработало. Я все еще хотел бы знать почему, но спасибо за вашу помощь - person Peter Kerr; 07.01.2015

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

person viperguynaz    schedule 04.06.2014
comment
Готово, ничего не изменилось, та же ошибка, я также попытался создать полностью новый проект MVC как WebRole с индивидуальной аутентификацией и столкнулся с той же проблемой. Вместо этого проект MVC без аутентификации развертывается и отлично работает. - person Francesco Cristallo; 04.06.2014