2015-05-13 17 views
5

Il progetto funzionava correttamente finché non ho aggiornato tutti i pacchetti NuGet tramite NuGet Manager (stavo cercando di ottenere gli ultimi pacchetti OWIN).Riferimento oggetto non impostato su un'istanza di un oggetto in _Layout.cshtml dopo i pacchetti aggiornati

Questo errore si trova in _Layout.cshtml e non l'ho ancora toccato.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 13: 
Line 14:  <!-- Custom Fonts --> 
Line 15:  @Scripts.Render("~/Content/fonts") 

Source File: f:\Workplace\lrc\lrc\Views\Shared_Layout.cshtml Line: 15


Aggiornamento

Ecco il codice che _Layout.cshtml (vengono generati automaticamente durante la creazione del progetto)

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="description" content="LRC - We are aiming at building up a healthier life style."> 
    <meta name="author" content="Winston Fan"> 
    <title>@ViewBag.Title - LRC</title> 
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 


    <!-- Custom Fonts --> 

     @Scripts.Render("~/Content/fonts") 

    <link href="http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css"> 
    <link href="http://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css"> 

Così si lamenta questa linea di codice: @ Scripts.Render ("~/Content/fonts")

Ma come potete vedere, questo è il codice generato da VS, come potrei sbagliarlo?

Ho anche controllato il contenuto nella cartella Conntent/font-awesome/fonts e tutte le risorse necessarie ci sono.

Ecco il codice all'interno del BundleConfig (che è anche il codice generato automaticamente)

bundles.Add(new ScriptBundle("~/Content/fonts").Include(
       "~/Content/font-awesome/fonts/fontawesome-*", 
       "~/Content/font-awesome/fonts/FontAwesome.otf")); 

mio Microsoft.OWin.Security, Microsoft.OWin.Security.Google e Microsoft.OWin sono la versione 3.0. 1,0


Aggiornamento 2

Ecco l'Analisi dello stack:

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.] Microsoft.Ajax.Utilities.JSParser.ParseExpression(AstNode leftHandSide, Boolean single, Boolean bCanAssign, JSToken inToken) +1007 Microsoft.Ajax.Utilities.JSParser.ParseExpressionStatement(Boolean fSourceElement) +268
Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean fSourceElement, Boolean skipImportantComment) +1552
Microsoft.Ajax.Utilities.JSParser.ParseBlock() +164
Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean fSourceElement, Boolean skipImportantComment) +498
Microsoft.Ajax.Utilities.JSParser.ParseBlock() +164
Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean fSourceElement, Boolean skipImportantComment) +498
Microsoft.Ajax.Utilities.JSParser.ParseBlock() +164
Microsoft.Ajax.Utilities.JSParser.ParseStatement(Boolean fSourceElement, Boolean skipImportantComment) +498
Microsoft.Ajax.Utilities.JSParser.ParseStatements(Block block) +159
Microsoft.Ajax.Utilities.JSParser.InternalParse() +1011
Microsoft.Ajax.Utilities.JSParser.Parse(DocumentContext sourceContext) +123 Microsoft.Ajax.Utilities.JSParser.Parse(DocumentContext sourceContext, CodeSettings settings) +54
Microsoft.Ajax.Utilities.Minifier.MinifyJavaScript(String source, CodeSettings codeSettings) +987
System.Web.Optimization.JsMinify.Process(BundleContext context, BundleResponse response) +310
System.Web.Optimization.Bundle.ApplyTransforms(BundleContext context, String bundleContent, IEnumerable 1 bundleFiles) +263
System.Web.Optimization.Bundle.GenerateBundleResponse(BundleContext context) +355
System.Web.Optimization.Bundle.GetBundleResponse(BundleContext context) +104
System.Web.Optimization.BundleResolver.GetBundleContents(String virtualPath) +254
System.Web.Optimization.AssetManager.DeterminePathsToRender(IEnumerable
1 assets) +252
System.Web.Optimization.AssetManager.RenderExplicit(String tagFormat, String[] paths) +75
System.Web.Optimization.Scripts.RenderFormat(String tagFormat, String[] paths) +292
System.Web.Optimization.Scripts.Render(String[] paths) +51
ASP._Page_Views_Shared__Layout_cshtml.Execute() in f:\Workplace\lrc\lrc\Views\Shared_Layout.cshtml:15
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +271
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +121
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +145
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer) +41
System.Web.WebPages.<>c__DisplayClass3.b__2(TextWriter writer) +335 System.Web.WebPages.HelperResult.WriteTo(TextWriter writer) +42
System.Web.WebPages.WebPageExecutingBase.WriteTo(TextWriter writer, HelperResult content) +45
System.Web.WebPages.WebPageBase.Write(HelperResult result) +53
System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action 1 body) +178
System.Web.WebPages.WebPageBase.PopContext() +229
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +154
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +695
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +382
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +431 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +39
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +116
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +529
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1 filters, ActionResult actionResult) +106
System.Web.Mvc.Async.<>c__DisplayClass2b.b__1c() +321 System.Web.Mvc.Async.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +133
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40
System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +34
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult, Controller controller) +39
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +39
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +932 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +188


Aggiornamento 3

Ecco la cartella Contenuto.

enter image description here


Update 4

Ecco il contenuto del packages.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Antlr" version="3.5.0.2" targetFramework="net451" /> 
    <package id="bootstrap" version="3.3.4" targetFramework="net451" /> 
    <package id="EntityFramework" version="6.1.3" targetFramework="net451" /> 
    <package id="jQuery" version="2.1.3" targetFramework="net451" /> 
    <package id="jQuery.Validation" version="1.13.1" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="2.2.1" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net451" /> 
    <package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net451" /> 
    <package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.Facebook" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.Google" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.MicrosoftAccount" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Owin.Security.Twitter" version="3.0.1" targetFramework="net451" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net451" /> 
    <package id="Modernizr" version="2.8.3" targetFramework="net451" /> 
    <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net451" /> 
    <package id="Owin" version="1.0" targetFramework="net451" /> 
    <package id="Respond" version="1.4.2" targetFramework="net451" /> 
    <package id="WebGrease" version="1.6.0" targetFramework="net451" /> 
</packages> 
+0

Aggiungere qualche informazione in più, da quale versione di quale versione ha fatto si aggiorna. Mostra il tuo file di layout. E inserisci un punto di interruzione nel file e trova esattamente ciò che è nullo ora. –

+0

@YishaiGalatzer Ciao grazie per la risposta. Si prega di consultare il mio aggiornamento. – Franva

+0

Quando hai aggiornato hai aggiornato anche la tua versione di MVC? In ogni caso, cosa succede quando commentate la riga incriminata? – DWright

risposta

6

Questo appare come un bug nel minifier javascript.

Microsoft.Ajax.Utilities.Minifier.MinifyJavaScript(String source, CodeSettings codeSettings) +987

Si prega di inviare un bug di connessione (sarò trasmettere la presente discussione internamente in Microsoft pure).

Come soluzione temporanea è possibile ridurre manualmente gli script e includerli direttamente anziché utilizzare il bundler.

Puoi condividere i tuoi pacchetti.config per favore?Aiuterà a rintracciare questo potenziale bug.

+0

Ciao Yishai, grazie mille per aver identificato questo problema. Potresti includere l'url per presentare un bug di connessione? Grazie – Franva

+0

Ciao Yishai, per favore guarda l'Aggiornamento 4 che ha il contenuto dei pacchetti.config – Franva

+1

Qui sto camminando su un arto, ma puoi provare a eseguire il downgrade di Microsoft.AspNet.Web.Optimization e WebGrease una versione alla volta. Se trovi qual è il motivo per cui funziona di nuovo, faccelo sapere –

5

Quindi mi sono imbattuto in questo bug in precedenza oggi ed è stato in grado di rintracciare il codice incriminato. Per quanto mi riguarda, il minifier stava soffocando in una brutta linea di javascript che è stato erroneamente usando una dichiarazione ternario della forma:

var test = condition ? true_value ? false_value; 

Ovviamente, il secondo punto di domanda avrebbe dovuto essere un due punti per fare una dichiarazione ternario valida. Ciò ha causato l'arresto completo dell'intera applicazione generando lo stesso errore sopra riportato. Forse non è lo stesso problema in cui ti sei imbattuto, ma dà gli stessi risultati.

8

Controllare javascript per errori. Il mio era una riga scritta per metà con 'funzione'

+0

mi hai risparmiato un sacco di tempo, svalutato! –

1

Qui è stato corretto sostituendo "ScriptBundle" con "Bundle" in BundleConfig.

Abbiamo sostituito il seguente:

bundles.Add(new ScriptBundle("~/bundles/mybundle").Include(
      "~/Scripts/...", 
      "~/Scripts/...")); 

con:

bundles.Add(new Bundle("~/bundles/mybundle").Include(
      "~/Scripts/...", 
      "~/Scripts/...")); 
0

ScriptBundle classe può essere usato per la legatura script e non può essere usato per la legatura stili. È accoppiato con @Scripts.Render("~/scripts/bundle") che esegue il rendering di un tag <script>.

Per gli stili c'è StyleBundle classe

bundles.Add(new StyleBundle("~/bundles/mybundle").Include(
     "~/Content/...", 
     "~/Content/...")); 

ed è accoppiato con @Styles.Render("~/content/bundle") che crea un tag <link>.

0

Nel mio caso, è dovuto a cambiamenti nelle librerie verdi quindi non posso correggere direttamente il file js.

Il mio modo di aggirare è utilizzare la versione mi n che indica il pacchetto: NON minimizzare questo file.

Per esempio: è sufficiente spostare select2.js-select2.min.js

Problemi correlati