Ruolo web ASP.NET MVC 5 Dopo aver distribuito a Azure Cloud, si rompe su @ script.Render
-
21-12-2019 - |
Domanda
Ho un servizio cloud con un ruolo Web ASP.NET MVC 5 e Azure SDK 2.3 Targeting 4.5.1 Quadro; Il sito Web funziona perfettamente in locale. Ma quando lo distributo in Azure Cloud Service, ho il classico errore di riferimento NULL:
Riferimento dell'oggetto non impostato su un'istanza di un oggetto. Dettagli eccezioni: System.nullReferenceException: riferimento oggetto non impostato su un'istanza di un oggetto.
Errore di origine:
Line 9: @Scripts.Render("~/bundles/jquery")
.
My BundleConfig.cs è semplice:
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"
));
.
Utilizzo dei registri IntelliTrace sul webrole Posso vedere questo errore:
.Nome file non valido per il monitoraggio dei file 'E: \ sitesroot \ 0 \ script
Immissione da remoto nell'istanza Vedo che gli script della cartella sono esattamente in quel percorso.
Rimozione di @ Script.Render La pagina Carica normalmente. The @ style.Render sulla stessa pagina funziona.
Ho provato a distribuire in modalità Debug e la modalità di rilascio, sia in scena.
ha anche provato a cambiare in Web.config il
compilation debug="true" and false
.
senza successo. Qualche idea perché potrebbe accadere questo? Grazie
Soluzione
Dopo giorni di test ho scoperto che il problema è il pacchetto di Webgrease.L'aggiornamento causerà il problema anche su un nuovo progetto nuovo.Per ora disinstallarlo e reinstallare la versione precedente ha risolto il problema.
Altri suggerimenti
Prova a rimuovere tutto tranne jQuery dal pacchetto jQuery.Quindi creare un nuovo pacchetto per gli script dipendenti jquery (knockout, jquery.signalr e modernizr) e renderlo dopo il pacchetto jQuery.