C# 使用ASP.NET Core中的UseApplicationInsights/AddApplicationInsights简单使用注入器
我正在构建一个ASP.NET Core 2.1应用程序。对于app insight telemetry,我有自己的自定义类,但我还想使用内置的C# 使用ASP.NET Core中的UseApplicationInsights/AddApplicationInsights简单使用注入器,c#,asp.net-core,dependency-injection,simple-injector,C#,Asp.net Core,Dependency Injection,Simple Injector,我正在构建一个ASP.NET Core 2.1应用程序。对于app insight telemetry,我有自己的自定义类,但我还想使用内置的ITelemetryInitializer。启用自动交叉接线时,Simple Injector是否自动解决这些依赖关系 更新 我尝试了下面的一段代码,得到了如下所示的错误。我不确定自动交叉布线应该如何工作 container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle(); serv
ITelemetryInitializer
。启用自动交叉接线时,Simple Injector是否自动解决这些依赖关系
更新
我尝试了下面的一段代码,得到了如下所示的错误。我不确定自动交叉布线应该如何工作
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSingleton<IControllerActivator>(
new SimpleInjectorControllerActivator(container));
services.EnableSimpleInjectorCrossWiring(container);
services.UseSimpleInjectorAspNetRequestScoping(container);
container.AutoCrossWireAspNetComponents(app);
services.AddApplicationInsightsTelemetry(
applicationInsightsLoggerConfig.InstrumentationKey);
var test = Container.GetInstance<TelemetryConfiguration>();
container.Options.DefaultScopedLifestyle=new AsyncScopedLifestyle();
services.AddSingleton();
服务.AddSingleton(
新的SimpleInjectorControllerActivator(容器));
服务.使能SimpleInjector交叉布线(容器);
使用SimpleInjectorAspnetRequestScoping(容器);
container.AutocrossWireApsNetComponents(应用程序);
services.AddApplicationInsightsTelemetry(
applicationInsightsLoggerConfig.InstrumentationKey);
var test=Container.GetInstance();
TelemetryConfiguration类型的注册委托引发了
例外。IServiceScope类型的注册委托引发了
例外。IServiceScope已注册为“异步作用域”
但该实例是在
活动(异步作用域)作用域。'
感谢此问题是由简单注入器的ASP.NET Core集成包的4.3.0版中的错误引起的
由于该缺陷,任何自动交叉连接依赖只能在活动范围的上下文中解决,即使该依赖是单例
<代码>遥测配置是一个单例
当显式交叉连接该依赖项时(即,使用container.CrossWire(app)
),问题将消失,因为CrossWire
确实允许在活动范围之外解决单例问题
该问题已在集成包中解决。在此版本中,您可以在活动web请求或简单InjectorScope
的上下文之外解析TelemetryConfiguration
但是,如果交叉连接服务是暂时的,或者范围是有限的,那么您仍然需要有一个活动的web请求,或者,如果在后台线程上运行,则需要一个活动的简单注入器范围
您好,请更新。