Asp.net MVC5 WebRole após implantado na nuvem do Azure, quebra em @Scripts.Render
-
21-12-2019 - |
Pergunta
Eu tenho um serviço de nuvem com uma função Web Asp.Net MVC 5 e Azure SDK 2.3 visando a estrutura 4.5.1;O site funciona perfeitamente em Local.Mas quando eu o implanto no serviço Azure Cloud, tenho o clássico erro de referência nula:
Referência de objeto não definida para uma instância de um objeto.Detalhes da exceção:System.NullReferenceException:Referência de objeto não definida para uma instância de um objeto.
Erro de origem:
Line 9: @Scripts.Render("~/bundles/jquery")
Meu BundleConfig.cs é simples:
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"
));
Usando logs do Intellitrace no WebRole, posso ver este erro:
nome de arquivo inválido para monitoramento de arquivo 'E:\sitesroot\0\Scripts
Entrando remotamente na instância vejo que a pasta Scripts está exatamente nesse caminho.
Removendo o @Script.Render a página carrega normalmente.O @Style.Render na mesma página funciona.
Tentei implantar no modo Debug e no modo Release, ambos em Staging.
Também tentei alterar no Web.config o
compilation debug="true" and false
sem sucesso.Alguma idéia de por que isso poderia acontecer?Obrigado
Solução
Após dias de testes descobri que o problema é o pacote WEBGREASE.Atualizá-lo causará o problema mesmo em um novo projeto.Por enquanto, desinstalá-lo e reinstalar a versão anterior resolveu o problema.
Outras dicas
Tente remover tudo, exceto jquery, do pacote jquery.Em seguida, crie um novo pacote para os scripts dependentes de jquery (knockout, jquery.signalR e modernizr) e renderize-o após o pacote jquery.