asp.net-core - ASP.NET Core (Blazor) 在启动时使用 Url 或虚拟路径加载客户特定的配置
问题描述
我们的应用程序(.NET Core 3.1 中的服务器端 Blazor)在 Windows 服务器上的 IIS 中运行。我们在 IIS 中有多个站点,它们运行相同的应用程序,但针对不同的客户使用不同的 URL。
在 (ConfigureServices) 中启动时,我们希望从配置文件中加载应用程序的客户配置。这样,我们可以让应用程序的多个实例以不同的配置运行。从数据库加载此信息不是一个选项,因为配置包含连接到数据库的详细信息。
在 ASP.NET Framework 中,我们可以访问 Global 中的虚拟路径或(子)域名,然后根据该信息加载配置。
我们需要在我们的 ASP.Net Core 应用程序或其他解决方法中具有相同的访问权限。有没有达到相同的结果?
解决方案
区分站点的更好方法是通过 URL。IIS中每个站点绑定的域名和端口不再重复。
您可以参考这些代码来获取 startup.cs 中的 URL。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env,IHostApplicationLifetime lifetime,IServiceProvider serviceProvider)
{
...other code...
lifetime.ApplicationStarted.Register(
() => logAddresses(app.ServerFeatures));
}
static void logAddresses(IFeatureCollection features)
{
var addressFeature = features.Get<IServerAddressesFeature>();
if (addressFeature != null)
{
foreach(var address in addressFeature.Addresses)
{
Console.Out.WriteLine(address);
}
}
}
推荐阅读
- html - 结合表单使用jquery加载功能
- javascript - 如何修改对象并转换为对象数组javascript
- google-apps-script - 使用自定义比较器功能对一系列单元格中的背景颜色进行排序
- sql - 如何将多条记录插入到相同的复数 ID
- typescript - 是否可以像在 Typescript 中一样在 Dart 中使用类属性作为类型?
- python - 数组中的重复对
- html - 将 JQuery 值附加到输入字段而不是选择选项
- driver - 在 Ubuntu 18.04 集群上安装 NetSuite 64 位 ODBC 驱动程序给出错误:- 无法打开 lib '/opt/netsuite/odbcclient/lib64/ivoa27.so
- javascript - 在 Acorn 中禁用重复声明验证
- python - Python 从网站获取特定数据