web-dev-qa-db-ja.com

パッケージの更新後、オブジェクト参照が_Layout.cshtml内のオブジェクトのインスタンスに設定されない

NuGet Managerを介してすべてのNuGetパッケージを更新するまで、プロジェクトは問題なく実行されていました(最新のOWINパッケージを取得しようとしました)。

このエラーは_Layout.cshtmlにあり、まったく触れていません。

オブジェクト参照がオブジェクトインスタンスに設定されていません。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細と、エラーがコードのどこで発生したかについては、スタックトレースを確認してください。

例外の詳細:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

ソースエラー:

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

ソースファイル: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">

したがって、次のコード行に不満があります:@ 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"));

私のMicrosoft.OWin.Security、Microsoft.OWin.Security.GoogleおよびMicrosoft.OWinはバージョン3.0.1.0です


更新2

これがスタックトレースです。

スタックトレース:

[NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。] 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(ブロックブロック)+159
Microsoft.Ajax.Utilities.JSParser.InternalParse()+1011
Microsoft.Ajax.Utilities.JSParser.Parse(DocumentContext sourceContext)+123 Microsoft.Ajax.Utilities.JSParser.Parse(DocumentContext sourceContext、CodeSettings設定)+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、IEnumerable1 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アセット)+252
System.Web.Optimization.AssetManager.RenderExplicit(String tagFormat、String [] paths)+75
System.Web.Optimization.Scripts.RenderFormat(String tagFormat、String []パス)+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、Action1 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フィルター、Int32 filterIndex、ResultExecutingContext preContext、ControllerContext controllerContext、ActionResult actionResult)+116
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) +529
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
1個のフィルタ、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.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+133
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+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.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+40
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+44 System.Web.Mvc.Controller.b__15(IAsyncResult asyncResult、Controller controller)+39
System.Web.Mvc.Async.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+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.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End()+139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult、Objectタグ)+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


更新

これがContentフォルダです。

enter image description here


更新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>
22
Franva

エラーがないかJavaScriptを確認してください。鉱山は「関数」で終わる半分書かれた行でした

23
Simon Legg

ここでは、BundleConfigの「ScriptBundle」を「Bundle」に置き換えることで修正されました。

以下を置き換えました:

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

と:

bundles.Add(new Bundle("~/bundles/mybundle").Include(
            "~/Scripts/...",
            "~/Scripts/..."));
21
Ron Deijkers

これはjavascript minifierのバグのようです。

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

接続バグを報告してください(このスレッドもMicrosoftの内部で転送します)。

回避策として、バンドラーを使用する代わりに、スクリプトを手動で縮小して直接含めることができます。

Packages.configを共有できますか?この潜在的なバグの追跡に役立ちます。

7
Yishai Galatzer

そのため、本日初めにこのバグに遭遇し、問題のあるコードを追跡することができました。私にとって、縮小版は、次の形式の3項ステートメントを誤って使用しているJavaScriptの不良行を窒息させていました。

var test = condition ? true_value ? false_value;

明らかに、2番目の疑問符は、有効な3項ステートメントを作成するためのコロンである必要があります。これにより、アプリケーション全体がクラッシュし、上記と同じエラーがスローされました。おそらくこれはあなたが遭遇したのと同じ問題ではありませんが、同じ結果をもたらします。

6
jamesmillerio

私の場合、それはverdorライブラリの変更によるもので、jsファイルを直接修正することはできません。

私の回避策は、バンドルに示されているminバージョンを使用することです。このファイルは縮小しないでください。

例:select2.jsからselect2.min.jsに移動するだけです

1
hakuna1811

ScriptBundleclassは、スクリプトのバンドルに使用でき、スタイルのバンドルには使用できません。これは、_<script>_タグをレンダリングする@Scripts.Render("~/scripts/bundle")と結合されます。

スタイルにはStyleBundleクラスがあります

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

また、_<link>_タグを作成する@Styles.Render("~/content/bundle")と結合されます。

1
Martin Staufcik

JavaScriptエラーが発生しているはずです。

変更を元に戻し、1つずつ変更を確認し、それらの変更をブラウザーで確認します。