c# - .NET 捆绑仅在服务器重新启动时引发错误
问题描述
所以我已经进行了捆绑,我们有一个由 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.Dictionary
2.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, Action
1 body) 在 System.Web.WebPages.WebPageBase.PopContext() 在 System.Web.WebPages.WebPageBase.<>c__DisplayClass3.b__2(TextWriter writer) 在 System.Web.WebPages.WebPageBase。1 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, Action
在 System.Web.WebPages.WebPageBase.PopContext() 在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) 在System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action 1 body) 写入(HelperResult 结果)System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker 的 1 个过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) 在 System.Web.Mvc.ControllerActionInvoker 的 1 个过滤器,Int32 filterIndex,ResultExecutingContext preContext,ControllerContext controllerContext,ActionResult actionResult)1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList
System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult) 处 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) 处的.InvokeActionResultFilterRecursive(IList 1 过滤器,ActionResult actionResult) System.Web .Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid
1.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() 在 System.Web.HttpApplication.ExecuteStepImpl (IExecutionStep 步骤)在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,Boolean& completedSynchronously)
解决方案
好的,所以想通了,似乎在构建字典时应该在字典上放置一个锁。
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"));
}
希望这对其他人有帮助:)
推荐阅读
- java - 如果他们将字符串放在 int 输入变量上,如何添加 else 语句?
- django - 如何使自定义模板过滤器不区分大小写?(Django 2.1)
- c# - 在 GeckoFx Web 浏览器中查看“dat://”网站
- ruby-on-rails - 如何开发一个用户可以投票给其他用户的投票系统(即类似信誉的系统)?
- arrays - 将 bash 数组分成对,并匹配任一元素
- javascript - ReactJS 中的 Axios Post 调用返回 404 错误
- python - 在 Python 中将随机数分配给没有重复的变量
- oauth-2.0 - 尝试连接到 IdentityServer4 登录页面失败
- java - 如何将海报图像分配给 VideoView?
- python - 如何在 pyspark 操作中轻松使用我的自定义类方法?