设置HttpRuntime.WebObjectActivator
让HttpApplication.InitModulesCommon
投掷NullReferenceException
。
我在我的Application_Start
中设置它并将其设置为null使得错误消失所以它的一致性。
堆栈跟踪如下
[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,如此处所见https://referencesource.microsoft.com/#system.web/ModulesEntry.cs,62和https://referencesource.microsoft.com/#system.web/HttpRuntime.cs,3388
是真的如此......?激活器是否真的有责任实例化未注册的对象?
不幸的是,阅读这个问题的答案证实,无论是谁制作了HttpRuntime.WebObjectActivator
都没有想到它