什么是 Blazor 应用的 app.config / web.config 解决方案。我几乎可以肯定这对于 Blazor 服务器端项目是可能的。但更深入地想知道如何为客户端项目处理配置。
本质上,我需要知道应用程序在什么样的环境下运行(例如开发、测试、生产)。
Blazor 的配置故事是什么?
什么是 Blazor 应用的 app.config / web.config 解决方案。我几乎可以肯定这对于 Blazor 服务器端项目是可能的。但更深入地想知道如何为客户端项目处理配置。
本质上,我需要知道应用程序在什么样的环境下运行(例如开发、测试、生产)。
Blazor 的配置故事是什么?
它与ASP.NET core的配置相同。您基本上每个环境都有一个文件,并使用内置接口将您的设置绑定到 classes。由于此类设置以以下格式存储:appsettings.environment.json
IConfiguration
json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"Serilog": {
"LevelSwitches": { "$controlSwitch": "Debug" },
"MinimumLevel": { "ControlledBy": "$controlSwitch" },
"WriteTo": [
...
有多少环境以及如何称呼它们,取决于您。这是一个例子:
在运行时,环境会从OS 环境变量 ASPNETCORE_ENVIRONMENT
的值中扣除。出于开发目的,您可以创建配置文件并设置ASPNETCORE_ENVIRONMENT
如下launchSettings.json
:
"profiles": {
"Development": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
部署或开始执行应用程序后,将使用服务器端和客户端应用程序Blazor
的主机。ASPNETCORE_ENVIRONMENT
请记住,即使它是客户端/SPA 应用程序,它仍然托管在服务器上。同样对于客户端Blazor
应用程序,appsettings
不会传递给客户端,您不希望将连接字符串和其他敏感设置暴露给客户端,对吗?
作为旁注,如果您Blazor
在 IIS 中托管您的应用程序(作为反向代理),将创建一个web.config文件,用于指导 IIS 如何启动应用程序、传递哪些参数以及其他一些事情。