将具有 ASP.NET Core 2.2 的 Autofac Multitenant 升级到 ASP.NET Core 5

Upgrade Autofac Multitenant with ASP.NET Core 2.2 to ASP.NET Core 5

我有一个 ASP.NET Core 2.2 应用程序,目前正在使用以下依赖项:

我想将应用程序从 ASP.NET Core 2.2 升级到 ASP.NET 5。由于新的通用 IHostBuilder 和使用 AutofacServiceProviderFactory,我有点不知道如何在运行时在 program.cs 和 add/remove 中构建租户。 在 .NET Core 2.2 中,我是这样做的:

var webHost = CreateTenantWebHostBuilder(args)
    .UseAutofacMultiTenant()
    .UseStartup<Startup>()
    .Build();

using (var scope = webHost.Services.CreateScope())
{
    try
    {
        var applicationLifetime = scope.ServiceProvider
            .GetRequiredService<IApplicationLifetime>();
        var tenantStore = scope.ServiceProvider
            .GetRequiredService<ICustomTenantsStore>();

        await tenantStore.InitializeTenantsAsync(applicationLifetime.ApplicationStopping);
    }
    catch (Exception ex)
    {
                       
    }
}

await webHost.RunAsync(cancelTokenSource.Token);

我建议您花一些时间查看一些可用资源。

您从 .NET Core 2.2 到 5.0 有了很大的飞跃,因此您将无法继续使用旧的 Autofac 版本。我建议更新到最新版本 - 您将获得对 .NET 5 的更新兼容性支持、错误修复、一些性能改进和更好的故障排除支持(以及最新的 Autofac 和扩展中的其他内容)。