Object reference not set to an instance of an object in _Layout.cshtml after updated packages
The project was running fine until I updated all NuGet packages via NuGet Manager (I was trying to get the latest OWIN packages).
This error is in the _Layout.cshtml
and I have not touched it at all.
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
Update
Here is the code in the _Layout.cshtml
(they are automatically generated when creating the project):
<!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">
So it is complaining this line of code:
@Scripts.Render("~/Content/fonts")
But as you can see that, this is VS generated code, how could I make it wrong?
I also checked the content in the Conntent/font-awesome/fonts
folder and all required resources are there.
Here is the code inside the BundleConfig
(which is also the auto-generated code):
bundles.Add(new ScriptBundle("~/Content/fonts").Include(
"~/Content/font-awesome/fonts/fontawesome-*",
"~/Content/font-awesome/fonts/FontAwesome.otf"));
My Microsoft.OWin.Security
, Microsoft.OWin.Security.Google
and Microsoft.OWin
are version 3.0.1.0
.
Update 2
Here is the 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.<RenderPageCore>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.<BeginInvokeAction>b__1c() +321 System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>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.<BeginExecuteCore>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.<BeginExecute>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.<BeginProcessRequest>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
Update 3
Here is the Content
folder:
Update 4
Here is the content of the 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>
Here it was fixed by replacing "ScriptBundle" with "Bundle" in BundleConfig.
We replaced the following:
bundles.Add(new ScriptBundle("~/bundles/mybundle").Include(
"~/Scripts/...",
"~/Scripts/..."));
with:
bundles.Add(new Bundle("~/bundles/mybundle").Include(
"~/Scripts/...",
"~/Scripts/..."));
Check javascript for errors. Mine was a half written line ending with 'function'
This looks like a bug in the javascript minifier.
Microsoft.Ajax.Utilities.Minifier.MinifyJavaScript(String source, CodeSettings codeSettings)
+987
Please file a connect bug (i'll forward this thread internally in Microsoft as well).
As a workaround you can minify the scripts manually and include them directly instead of using the bundler.
Can you share your packages.config please? It will help with tracking this potential bug.
So I ran into this bug earlier today and was able to track down the offending code. For myself, the minifier was choking on a bad line of javascript that was incorrectly using a ternary statement of the form:
var test = condition ? true_value ? false_value;
Obviously, the second question mark should have been a colon to make a valid ternary statement. This caused the entire application to crash throwing the same error above. Perhaps this isn't the same issue you ran into, but it gives the same results.
ScriptBundle
class can be used for bundling scripts and cannot be used for bundling styles. It is coupled with @Scripts.Render("~/scripts/bundle")
that renders a <script>
tag.
For styles there is StyleBundle
class
bundles.Add(new StyleBundle("~/bundles/mybundle").Include(
"~/Content/...",
"~/Content/..."));
and it is coupled with @Styles.Render("~/content/bundle")
that creates a <link>
tag.