![](/img/trans.png)
[英]c#: No service for type *Context has been registered. Database connection issue
[英]When RegisterEventBus " No service for type Autofac.ILifetimeScope' has been registered.'
我正在按照下面的代码配置服务总线。 当我执行这段代码时,它指责我不知道如何配置它的错误。 请。 我从哪里来的桥或如何安排它
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); }); } }
这个文档是你想要查看的,特别是 .net core v3+:
示例程序.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();
});
}
我在玩的时候也遇到过同样的问题。 经过我的分析,我发现核心问题是用Autofac的依赖注入容器替换了默认的依赖注入容器。
确保在 ConfigureServices 方法中返回 AutofacServiceProvider。
我正在学习事件总线跟踪商店,我遇到了同样的问题,最后,我找到了网站 [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()) 只是帮我编译代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.