C# .Net核心2.1+;MassTransit-无法访问已处置的对象。对象名称:';IServiceProvider';
我正在使用.NET Core 2.1和MassTransit开发该应用程序。 我发现以下错误: 对象名称:“IServiceProvider.”,System.ObjectDisposedException:无法访问已处置对象 在配置服务中C# .Net核心2.1+;MassTransit-无法访问已处置的对象。对象名称:';IServiceProvider';,c#,asp.net,asp.net-core,masstransit,C#,Asp.net,Asp.net Core,Masstransit,我正在使用.NET Core 2.1和MassTransit开发该应用程序。 我发现以下错误: 对象名称:“IServiceProvider.”,System.ObjectDisposedException:无法访问已处置对象 在配置服务中 public void ConfigureServices(IServiceCollection services) { services.InitializeTelegramBot(Configuration); //Rab
public void ConfigureServices(IServiceCollection services)
{
services.InitializeTelegramBot(Configuration);
//RabbitMQ register consumer
services.Configure<RabbitMqConfiguration>(Configuration.GetSection("RabbitMqConfiguration"));
services.AddMassTransit(configurator =>
{
configurator.AddConsumer<Sender>();
});
services.AddScoped<Sender>();
//services.AddSingleton<IApplicationLifetime, ApplicationLifetime>();
}
全堆栈跟踪
Object name: 'IServiceProvider'., System.ObjectDisposedException: Cannot
access a disposed object.
Object name: 'IServiceProvider'.
at
Microsoft.Extensions.DependencyInjection.ServiceLookup.ThrowHelper.ThrowObjectDisposedException()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at MassTransit.ExtensionsDependencyInjectionIntegration.DependencyInjectionConsumerScopeProvider.MassTransit.Scoping.IConsumerScopeProvider.GetScope[TConsumer,T](ConsumeContext`1 context)
at MassTransit.Scoping.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)
对象名称:“IServiceProvider.”,System.ObjectDisposedException:无法
访问已处置的对象。
对象名称:“IServiceProvider”。
在
Microsoft.Extensions.DependencyInjection.ServiceLookup.ThrowHelper.ThrowObjectDisposedException()文件
位于Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(类型serviceType)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider提供程序,键入serviceType)
位于Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider提供程序)
在MassTransit.ExtensionsDependencyInjectionIntegration.DependencyInjectionConsumerScopeProvider.MassTransit.Scoping.IConsumerScopeProvider.GetScope[TConsumer,T](ConsumerContext`1 context)
在MassTransit.Scope.ScopeConsumerFactory`1.Send[TMessage](ConsumerContext`1 context,IPipe`1 next)
在MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.GreenPippes.IFilter.Send(ConsumerContext`1 context,IPipe`1 next)
我将感谢任何帮助。我希望我问的问题很清楚。您可以看看这个示例,了解如何在.NET核心应用程序中设置和使用MassTransit,包括使用内置依赖项注入服务
接受的答案不是答案。您可以解释如何使用链接文档来解决问题
Object name: 'IServiceProvider'., System.ObjectDisposedException: Cannot
access a disposed object.
Object name: 'IServiceProvider'.
at
Microsoft.Extensions.DependencyInjection.ServiceLookup.ThrowHelper.ThrowObjectDisposedException()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at MassTransit.ExtensionsDependencyInjectionIntegration.DependencyInjectionConsumerScopeProvider.MassTransit.Scoping.IConsumerScopeProvider.GetScope[TConsumer,T](ConsumeContext`1 context)
at MassTransit.Scoping.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next)
at MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next)