【问题标题】:.NET bundling throws error only when server is restarted.NET 捆绑仅在服务器重新启动时引发错误
【发布时间】:2021-04-20 00:54:39
【问题描述】:

所以我已经进行了捆绑,并且我们有一个由 3 台服务器组成的网络农场运行该网站。

当应用程序池被回收时,会抛出一些错误,但我不确定如何修复它们(或者是否有可能)

.NET 框架目标版本为 4.5.1 在包管理器中说我有最新的 Microsoft.AspNet.Web.Optimization 1.1.3 版

Bundle 是这样设置的

var bundles = BundleTable.Bundles;

bundles.Add(new StyleBundle("~/Themes/Mine/Content/bundling/css/header-styles").Include(//line 168
    "~/Themes/Mine/Content/css/styles.css",
    "~/Themes/Mine/Content/css/bootstrap.css",
    "~/Themes/Mine/Content/css/responsive.css"));

是这样渲染的

@Styles.Render("~/Themes/Mine/Content/bundling/css/header-styles")

任何想法

这是一个例外:

System.NullReferenceException:对象引用未设置为对象的实例。在 System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) at System.Web.Optimization.BundleCollection.Add(Bundle bundle) at ASP._Page_Themes_Mine_Views_Shared__Root_Head_cshtml.Execute() in c:\inetpub\vhosts\site\Themes\Mine\Views\Shared\_Root.Head.cshtml:line 159 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.WebPages.WebPageBase.<>c__DisplayClass3.<RenderPageCore>b__2(TextWriter writer) at System.Web.WebPages.WebPageBase.Write(HelperResult result) at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action1 body) 在 System.Web.WebPages.WebPageBase.PopContext() 在 System.Web.WebPages.WebPageBase.c__DisplayClass3.b__2(TextWriter writer) 在 System.Web.WebPages .WebPageBase.Write(HelperResult 结果) 在 System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action1 body) at System.Web.WebPages.WebPageBase.PopContext() at System.Web.WebPages.WebPageBase.<>c__DisplayClass3.<RenderPageCore>b__2(TextWriter writer) at System.Web.WebPages.WebPageBase.Write(HelperResult result) at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action1 body) 在 System.Web.WebPages.WebPageBase.PopContext() 在 System.Web.Mvc.ViewResultBase。 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 个过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList@98765 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive 的 4327@1 个过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)。 Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList1 filters, ActionResult actionResult) 在 System .Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass21.b__1e(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 在 System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState ) 在 S ystem.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) 在 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) 在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication .IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

【问题讨论】:

    标签: c# .net asp.net-mvc optimization bundling-and-minification


    【解决方案1】:

    好吧,这样想通了,似乎在构建字典时应该在字典上加一个锁。

    var bundles = BundleTable.Bundles;
    
    lock (bundles)
        {
            bundles.Add(new StyleBundle("~/Themes/Mine/Content/bundling/css/header-styles").Include(
                "~/Themes/Mine/Content/css/styles.css",
                "~/Themes/Mine/Content/css/bootstrap.css",
                "~/Themes/Mine/Content/css/responsive.css"));
        }
    

    希望这对其他人有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 2014-05-22
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      相关资源
      最近更新 更多