![](/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.