如何在运行时在 Blazor WebAssembly 客户端应用程序中使用 Azure 应用设置作为 appsettings.json 配置?
Posted
技术标签:
【中文标题】如何在运行时在 Blazor WebAssembly 客户端应用程序中使用 Azure 应用设置作为 appsettings.json 配置?【英文标题】:How to use Azure App Settings in a Blazor WebAssembly Client side application at runtime as appsettings.json configuration? 【发布时间】:2021-05-31 02:06:43 【问题描述】: 我正在开发 Blazor WebAssembly 客户端/服务器项目(目录结构如上) 在客户端和服务器项目中都有一些应用程序设置。 项目托管在 Azure 中。问题出在客户端,appsettings.json
appsettings.json
位于wwwroot
目录中。可以在应用内访问文件,但是应用服务的 Azure Portal Application Settings 无法覆盖这些设置。
这意味着,在 Web 应用服务上的 Azure 门户中部署应用程序后,我的配置设置不适用于应用程序设置的变量。
这是Progam.cs
中的代码,可以正常工作并从文件中读取配置,但忽略Azure上Web App Service的配置设置。
public static async Task Main(string[] args)
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
//Add a named httpClient and set base Address and Default Request Headers
builder.Services.AddHttpClient("SOME_WEB_URL", client => // SOME_WEB_URL is defined in the appsettings.json or in the Azure App Service configuration (Application Settings)
client.BaseAddress = new Uri(builder.Configuration["sbformsapi"]);
);
//Add a named httpClient and set base Address and Default Request Headers
builder.Services.AddHttpClient("WEB_APP_API", client => // WEB_APP_API is defined in the
client.BaseAddress = new Uri(builder.Configuration["sbwebappapi"]);
);
builder.Services.AddAuthorizationCore();
....
await builder.Build().RunAsync();
有人可以指导我怎么做
将appsettings.json 文件设置在wwwroot 之外并从那里读取? 或 在运行时注入/使用 Azure 应用服务配置的应用程序设置中的值?这里说的是应用设置(如图)...
【问题讨论】:
如果其中有任何秘密,您可以实现一个返回特定于前端的配置项的 API。看看这里:ASP.NET Core Blazor configuration. @wafers 你找到解决办法了吗? 【参考方案1】:当前应用程序设置仅适用于与 Blazor 应用程序关联的后端 API(假设使用静态应用程序?)。
https://docs.microsoft.com/en-gb/azure/static-web-apps/application-settings
【讨论】:
以上是关于如何在运行时在 Blazor WebAssembly 客户端应用程序中使用 Azure 应用设置作为 appsettings.json 配置?的主要内容,如果未能解决你的问题,请参考以下文章
在 blazor 中使用自定义组件时在注入的差异服务中调用 HttpContextAccesor 后为 null
为 Blazor WebAssembly 中的所有 blazor 页面实例化一个对象?
在哪里可以找到有关如何将 Blazor 应用部署到在 Windows Server 2019 上运行的 IIS10 的具体详细信息