Dependency injection 升级到.NET 4.6.1后无法使用Autofac解决

Dependency injection 升级到.NET 4.6.1后无法使用Autofac解决,dependency-injection,autofac,thinktecture-ident-server,.net-4.6.1,Dependency Injection,Autofac,Thinktecture Ident Server,.net 4.6.1,我已经在上发布了一个关于此的问题,并被建议将其放在StackOverflow上: 更新到.NET 4.6.1后,ThinkTecture授权服务器出现问题。正如一些人所知,AuthorizationServer使用AutoFac(我们也将其更新为AutoFac 3.5.2) 奇怪的是,在我的本地机器和我们的开发环境中,一切都正常,但在INT上失败了!(所有这些环境都包含.NET 4.6.1): 我们遇到的问题从一开始就是这样的: [NullReferenceException:对象引用未设置为对

我已经在上发布了一个关于此的问题,并被建议将其放在StackOverflow上:

更新到.NET 4.6.1后,ThinkTecture授权服务器出现问题。正如一些人所知,AuthorizationServer使用AutoFac(我们也将其更新为AutoFac 3.5.2)

奇怪的是,在我的本地机器和我们的开发环境中,一切都正常,但在INT上失败了!(所有这些环境都包含.NET 4.6.1):

我们遇到的问题从一开始就是这样的:

[NullReferenceException:对象引用未设置为对象的实例。] c:\Builds\23\48\src\IsIT.SignonServices.Common\Logger\Logger.ctor()中的IsIT.SignonServices.Common.Logger..ctor():43 lambda_方法(闭包,对象[])+140 Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()+271

[DependencyResolutionException:调用类型“TokenService”上的构造函数“Void.ctor(ThinkStructure.AuthorizationServer.Interfaces.IAAuthorizationServerConfiguration)”时引发异常。-->对象引用未设置为对象的实例。(有关详细信息,请参阅内部异常)。] Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()+736 Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext上下文,IEnumerable
1参数)+266
Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable
1参数)+86 Autofac.Core.Resolving.InstanceLookup.Execute()+62 Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(iShareInLiFeTimeScope currentOperationScope,IComponentRegistration,IEnumerable
1参数)+170
Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()+124
Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext上下文,IEnumerable
1参数)+266 Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable
1参数)+86
Autofac.Core.Resolving.InstanceLookup.Execute()+62
Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(iShareInLiFeTimeScope currentOperationScope,IComponentRegistration,IEnumerable
1参数)+170 Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration注册,IEnumerable
1参数)+109
Autofac.ResolutionExtensions.TryResolveService(IComponentContext上下文、服务服务、IEnumerable
1参数、对象和实例)+122 Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext上下文,服务服务,IEnumerable`1参数)+70 Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(类型serviceType)+95 System.Web.Mvc.DefaultControllerActivator.Create(RequestContext-RequestContext,Type controllerType)+59

[InvalidOperationException:尝试创建“Thinktecture.AuthorizationServer.OAuth2.AuthorizationController”类型的控制器时出错。请确保该控制器具有无参数公共构造函数。] System.Web.Mvc.DefaultControllerActivator.Create(RequestContext-RequestContext,类型controllerType)+240 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext RequestContext,String controllerName)+103 ProcessRequestInit(HttpContextBase httpContext、IController和controller、IControllerFactory和factory)+268 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,异步回调,对象状态)+95 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+921 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+137


有人能帮忙吗,我想这与反射/注入解析有关?

您在INT环境中安装了.net framework 4.6.*吗?是的,正如我明确指出的,我在所有环境中都安装了4.6.1。更新:我可以通过延迟加载一个组件来解决这个问题,所以它在管道中稍后加载,在Autofac启动之前,并尝试初始化它的配置和类型:-)