更新的包之后,对象引用未设置为_Layout.cshtml中对象的实例

Fra*_*nva 20 c# asp.net-mvc razor owin asp.net-mvc-5

该项目运行正常,直到我通过NuGet Manager更新了所有NuGet包(我试图获得最新的OWIN包).

这个错误发生在_Layout.cshtml中,我根本没有触及它.

你调用的对象是空的.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.

来源错误:

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

源文件:f:\ Workplace\lrc\lrc\Views\Shared_Layout.cshtml行:15


更新

这是_Layout.cshtml中的代码(它们是在创建项目时自动生成的)

<!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">
Run Code Online (Sandbox Code Playgroud)

所以它抱怨这行代码:@ Scripts.Render("〜/ Content/fonts")

但是你可以看到,这是VS生成的代码,我怎么能错呢?

我还检查了Conntent/font-awesome/fonts文件夹中的内容,并且所有必需的资源都在那里.

这是BundleConfig中的代码(也是自动生成的代码)

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

我的Microsoft.OWin.Security,Microsoft.OWin.Security.Google和Microsoft.OWin是版本3.0.1.0


更新2

这是堆栈跟踪:

堆栈跟踪:

[的NullReferenceException:对象没有设置为一个对象的一个实例.] Microsoft.Ajax.Utilities.JSParser.ParseExpression(AstNode leftHandSide,布尔单,布尔bCanAssign,JSToken inToken)1007 Microsoft.Ajax.Utilities.JSParser.ParseExpressionStatement(布尔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(布尔fSourceElement,布尔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.InternalPa rse()+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 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()在F:\职场\ LRC\LRC \查看\ 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的作家)+42 System.Web.WebPages.WebPageExecutingBase.WriteTo(TextWriter的作家,HelperResult内容)+45 System.Web.WebPages.WebPageBase.Write(HelperResult结果)+53 System.Web.WebPages. WebPageBase.RenderSurrounding(String partialViewName,Action 1 filters,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)+116 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(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.End()+ 133 S ystem.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult的asyncResult,对象标签)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.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.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.IAsyncContro ller.EndExecute(IAsyncResult asyncResult)+39 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult,ProcessRequestState innerState)+39 System.Web.Mvc.Async.WrappedAsyncVoid 1.End()+139 System.Web.Mvc.Async .AsyncResultWrapper.End(IAsyncResult的asyncResult,对象标签)59 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult的asyncResult,对象标签)40 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult的asyncResult)40系统. 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)+1881 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 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) +529
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList


1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase




1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase




1.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase





1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase





更新3

这是Content文件夹.

在此输入图像描述


更新4

这是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>
Run Code Online (Sandbox Code Playgroud)

Sim*_*egg 21

检查javascript是否有错误.我的写作行以"函数"结尾


Ron*_*ers 18

这里通过在BundleConfig中将"ScriptBundle"替换为"Bundle"来修复.

我们更换了以下内容:

bundles.Add(new ScriptBundle("~/bundles/mybundle").Include(
            "~/Scripts/...",
            "~/Scripts/..."));
Run Code Online (Sandbox Code Playgroud)

有:

bundles.Add(new Bundle("~/bundles/mybundle").Include(
            "~/Scripts/...",
            "~/Scripts/..."));
Run Code Online (Sandbox Code Playgroud)

  • ScriptBundle 和 Bundle 之间的唯一区别是 ScriptBundle 使用“JsMinify”变换(默认变换)——这对于 StyleBundle 与 Bundle 来说也是相同的(使用 CssMinify)。脚本包的这种缩小总是会发生,即使在调试模式下也是如此。http://blog.travisgosselin.com/net-bundling-minification-top-10-keys/ (3认同)
  • 对于任何试图将Angular 8集成到MVC项目中的人。这就是答案。猜测角度​​会进行一些优化,这些优化会导致运行缩小器时出现问题。 (3认同)
  • 我只是不明白为什么这一直工作正常。现在突然不行了,ScriptBundle 必须换成 Bundle。 (3认同)
  • 这也对我有用......看起来 js 文件本身的问题可能会导致它。https://developercommunity.visualstudio.com/content/problem/86377/nullreferenceexception-when-bundling-js-file-conta.html (2认同)
  • 我在默认 ASP.Net(非核心)MVC 站点上更新 NuGet 包后得到了这个。可能是 WebGrease 的某个版本破坏了它。 (2认同)

Yis*_*zer 7

这看起来像是javascript minifier中的一个bug.

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

请提交连接错误(我也会在Microsoft内部转发此主题).

作为一种解决方法,您可以手动缩小脚本并直接包含它们,而不是使用捆绑器.

你可以分享你的packages.config吗?它将有助于跟踪这个潜在的错误.

  • 我在这里步履维艰,但您可以尝试一次降级 Microsoft.AspNet.Web.Optimization 和 WebGrease 一个版本。如果您发现哪一个可以再次运行,请告诉我们 (2认同)

jam*_*rio 6

所以我今天早些时候碰到了这个bug,并且能够找到有问题的代码.对于我自己来说,缩小器是在一个错误的使用表单的三元语句错误的javascript线上窒息:

var test = condition ? true_value ? false_value;
Run Code Online (Sandbox Code Playgroud)

显然,第二个问号应该是一个冒号来做出有效的三元声明.这导致整个应用程序崩溃,抛出上述相同的错误.也许这不是你遇到的同一个问题,但它给出了相同的结果.