[英]When RegisterEventBus " No service for type Autofac.ILifetimeScope' has been registered.'
I am configuring service bus, as per code below.我正在按照下面的代码配置服务总线。 When I execute this code, it accuses this error that I do not know how to configure it.
当我执行这段代码时,它指责我不知道如何配置它的错误。 Please.
请。 me the bridge from where it comes or how to arrange it
我从哪里来的桥或如何安排它
private void RegisterEventBus(IServiceCollection services) { var subscriptionClientName = Configuration["SubscriptionClientName"]; if (Configuration.GetValue<bool>("AzureServiceBusEnabled")) { services.AddSingleton<IEventBus, EventBusServiceBus>(sp => { var serviceBusPersisterConnection = sp.GetRequiredService<IServiceBusPersisterConnection>(); var iLifetimeScope = sp.GetRequiredService<ILifetimeScope>(); var logger = sp.GetRequiredService<ILogger<EventBusServiceBus>>(); var eventBusSubcriptionsManager = sp.GetRequiredService<IEventBusSubscriptionsManager>(); return new EventBusServiceBus(serviceBusPersisterConnection, logger, eventBusSubcriptionsManager, subscriptionClientName, iLifetimeScope); }); } }
This documentation is what you want to check out, specifically for .net core v3+:这个文档是你想要查看的,特别是 .net core v3+:
https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html#quick-start-with-configurecontainer https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html#quick-start-with-configurecontainer
Sample Program.cs:示例程序.cs:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseIIS();
});
}
I have faced the same issue while playing around.我在玩的时候也遇到过同样的问题。 After my analysis, I figured out that the core problem is with the replacement of the default dependency injection container with Autofac's dependency injection container.
经过我的分析,我发现核心问题是用Autofac的依赖注入容器替换了默认的依赖注入容器。
Ensure that you return AutofacServiceProvider in the ConfigureServices method.确保在 ConfigureServices 方法中返回 AutofacServiceProvider。
I am learning event bus to follow shop, I met the same issue, at last, I found out the solution for the web-site [Mickaël Derriey's blog] https://mderriey.com/2018/08/02/autofac-integration-in-asp-net-core-generic-hosts/ .我正在学习事件总线跟踪商店,我遇到了同样的问题,最后,我找到了网站 [Mickaël Derriey 的博客] https://mderriey.com/2018/08/02/autofac-integration的解决方案-in-asp-net-core-generic-hosts/ 。
public static async Task Main(string[] args)
{
await new HostBuilder()
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureContainer<ContainerBuilder>(builder =>
{
// registering services in the Autofac ContainerBuilder
})
.UseConsoleLifetime()
.Build()
.RunAsync();
}
.UseServiceProviderFactory(new AutofacServiceProviderFactory()) just help me complied the codes. .UseServiceProviderFactory(new AutofacServiceProviderFactory()) 只是帮我编译代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.