You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Blazor WebAssembly新项目无法找到appsettings.json

Blazor WebAssembly .NET6 找不到appsettings.json 问题解决

你遇到的错误核心原因是Blazor WebAssembly运行在浏览器沙箱环境中,无法直接访问本地文件系统,你的代码使用了服务器端ASP.NET Core的配置加载逻辑,不适用于WASM场景,同时配置文件的存放位置也不符合要求。

1. 修正配置文件位置

将项目根目录下的appsettings.json移动到wwwroot文件夹中——Blazor WASM的所有静态资源(包括配置文件)必须放在wwwroot目录下,才能被浏览器正常访问。

2. 简化Program.cs中的配置加载代码

WebAssemblyHostBuilder.CreateDefault(args)已经默认完成了以下配置加载工作,无需手动重复添加:

  • 加载wwwroot/appsettings.json
  • 加载wwwroot/appsettings.{环境名}.json(文件存在时)
  • 加载浏览器URL中的查询参数配置

修改后的Program.cs代码:

using DataReload.Client;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;

var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

// 直接使用已加载的配置,无需手动添加JsonFile
var defaultConn = builder.Configuration.GetConnectionString("DefaultDatabaseConnection");
var reportConn = builder.Configuration.GetConnectionString("ReportDatabaseConnection");

await builder.Build().RunAsync();

3. 确认配置文件属性设置

右键wwwroot/appsettings.json打开属性面板:

  • 将「复制到输出目录」设置为「如果较新则复制」或「始终复制」
  • 将「生成操作」设置为「内容」

自定义配置加载说明(可选)

如果需要加载非默认路径的配置文件,不能直接用AddJsonFile读取本地路径,需通过HttpClient发起HTTP请求加载:

var http = builder.Services.BuildServiceProvider().GetRequiredService<HttpClient>();
var configStream = await http.GetStreamAsync("custom-settings.json");
builder.Configuration.AddJsonStream(configStream);

内容的提问来源于stack exchange,提问作者EB.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:05:09