【问题标题】:Setting HttpRuntime.WebObjectActivator makes HttpApplication.InitModulesCommon throw a NullReferenceException设置 HttpRuntime.WebObjectActivator 会使 HttpApplication.InitModulesCommon 抛出 NullReferenceException
【发布时间】:2019-04-10 13:52:56
【问题描述】:

设置HttpRuntime.WebObjectActivator 使HttpApplication.InitModulesCommon 抛出NullReferenceException

我将它设置在我的Application_Start 中并将其设置回 null 会使错误消失,因此它是一致的。

stacktrace如下

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.HttpApplication.InitModulesCommon() +166
   System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +792
   System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +153
   System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +107
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +327

我最好的猜测是,由于所有模块都由 WebObjectActivator 解析,因此这条线失败了 https://referencesource.microsoft.com/#system.web/HttpApplication.cs,2337,因此如果它们没有注册,则返回 null

真的是这样吗...?实例化未注册的对象真的是激活器的责任吗?

【问题讨论】:

  • 我假设您已经阅读了What is a NullReferenceException, and how do I fix it? 如果是这样,您能edit 解释为什么这没有解决问题吗? (否则这很有可能会被标记为重复)。
  • @EJoshuaS 我不确定您的评论与此处的相关性如何,或者它是否自动生成?异常源自asp.net的内部。

标签: c# asp.net dependency-injection inversion-of-control


【解决方案1】:

不幸的是,阅读这个问题的答案证实了 HttpRuntime.WebObjectActivator 的编造者并没有深思熟虑

Wiring up Simple Injector in WebForms in .NET 4.7.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 2010-09-27
    • 2014-03-07
    • 1970-01-01
    • 2020-11-17
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多