简体   繁体   English

当 RegisterEventBus “没有注册 Autofac.ILifetimeScope 类型的服务时。”

[英]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.

相关问题 c#: 没有注册 *Context 类型的服务。 数据库连接问题 - c#: No service for type *Context has been registered. Database connection issue “ InvalidOperationException:没有注册类型&#39;Microsoft.Extensions.Configuration.IConfiguration&#39;的服务。” - “InvalidOperationException: No service for type 'Microsoft.Extensions.Configuration.IConfiguration' has been registered.” System.InvalidOperationException:“没有为类型 'Microsoft.AspNetCore.Hosting.Server.IServer' 注册服务。” - System.InvalidOperationException: 'No service for type 'Microsoft.AspNetCore.Hosting.Server.IServer' has been registered.' 使用 HealthCheckUI 失败并出现异常“没有注册类型‘HealthChecks.UI.Core.Data.HealthChecksDb’的服务。” - Using HealthCheckUI fails with exception "No service for type 'HealthChecks.UI.Core.Data.HealthChecksDb' has been registered." 没有注册“IServiceProviderFactory[Autofac.ContainerBuilder]”类型的服务 - No service for type 'IServiceProviderFactory[Autofac.ContainerBuilder]' has been registered Autofac - 请求的服务 (lSomeDbContext) 尚未注册 - Autofac - The requested service (lSomeDbContext) has not been registered 如何创建自定义类的单例并将其注入.Net core 2.0中的其他类? “没有注册“服务”类型的服务。”? - How to create a singleton of a custom class and inject it other classes in .Net core 2.0? 'No service for type 'Services' has been registered.'? 没有注册类型服务 - No service for type has been registered 测试失败:没有注册“Microsoft.Extensions.DependencyInjection.IServiceProviderFactory`1[Autofac.ContainerBuilder]”类型的服务 - Tests fail: No service for type 'Microsoft.Extensions.DependencyInjection.IServiceProviderFactory`1[Autofac.ContainerBuilder]' has been registered 请求的服务尚未注册! AutoFac依赖注入 - The requested service has not been registered ! AutoFac Dependency Injection
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM