将具有 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 应用程序,目前正在使用以下依赖项:
- Autofac.AspNetCore.Multitenant 版本 1.1.0
- Autofac.AspNetCore.Extensions版本:1.0.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);
我建议您花一些时间查看一些可用资源。
- The documentation has a walkthrough of multitenant setup in ASP.NET Core.
- The
Autofac.AspNetCore.Multitenant
repo has samples which show how to deal with registering the multitenant container factory, setting up common dependencies, and using a static method to configure tenants.
您从 .NET Core 2.2 到 5.0 有了很大的飞跃,因此您将无法继续使用旧的 Autofac 版本。我建议更新到最新版本 - 您将获得对 .NET 5 的更新兼容性支持、错误修复、一些性能改进和更好的故障排除支持(以及最新的 Autofac 和扩展中的其他内容)。
我有一个 ASP.NET Core 2.2 应用程序,目前正在使用以下依赖项:
- Autofac.AspNetCore.Multitenant 版本 1.1.0
- Autofac.AspNetCore.Extensions版本:1.0.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);
我建议您花一些时间查看一些可用资源。
- The documentation has a walkthrough of multitenant setup in ASP.NET Core.
- The
Autofac.AspNetCore.Multitenant
repo has samples which show how to deal with registering the multitenant container factory, setting up common dependencies, and using a static method to configure tenants.
您从 .NET Core 2.2 到 5.0 有了很大的飞跃,因此您将无法继续使用旧的 Autofac 版本。我建议更新到最新版本 - 您将获得对 .NET 5 的更新兼容性支持、错误修复、一些性能改进和更好的故障排除支持(以及最新的 Autofac 和扩展中的其他内容)。