首页 > 解决方案 > Blazor 项目的 app.config 解决方案是什么?

问题描述

什么是 Blazor 应用的 app.config / web.config 解决方案。我几乎可以肯定这对于 Blazor 服务器端项目是可能的。但更深入地想知道如何为客户端项目处理配置。

本质上,我需要知道应用程序在什么样的环境下运行(例如开发、测试、生产)。

Blazor 的配置故事是什么?

标签: asp.net-web-apiasp.net-coreweb-configblazorblazor-server-side

解决方案


它与ASP.NET core的配置相同。您基本上每个环境都有一个文件,并使用内置接口将您的设置绑定到 classes。由于此类设置以以下格式存储:appsettings.environment.jsonIConfigurationjson

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  "Serilog": {
    "LevelSwitches": { "$controlSwitch": "Debug" },
    "MinimumLevel": { "ControlledBy": "$controlSwitch" },
    "WriteTo": [
...

有多少环境以及如何称呼它们,取决于您。这是一个例子:

ASP.NET 核心应用设置示例

在运行时,环境会从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 如何启动应用程序、传递哪些参数以及其他一些事情。


推荐阅读