Visual Studio调试遇System.ArgumentException:连接字符串关键字问题求助
问题修正方案
你的代码核心错误在于调用AddAzureAppConfiguration时传入的参数有误——你把变量名写成了字符串字面量,导致程序无法正确读取存在user-secrets里的连接字符串。
修正步骤
- 找到这行错误代码:
builder.Configuration.AddAzureAppConfiguration("connectionString");
- 将其修改为使用你前面获取到的变量:
builder.Configuration.AddAzureAppConfiguration(connectionString);
修正后的完整代码如下:
using TestAppConfig; var builder = WebApplication.CreateBuilder(args); string connectionString = builder.Configuration.GetConnectionString("AppConfig"); builder.Configuration.AddAzureAppConfiguration(connectionString); builder.Services.AddRazorPages(); builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings")); var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapRazorPages(); app.Run();
额外说明
- 你之前在Bash中运行正常,大概率是因为当时环境里存在名为
connectionString的配置项(比如环境变量),但VS调试环境没有这个配置,所以触发报错。 - 确认VS调试时能读取到user-secrets:右键项目→管理用户机密,检查里面是否存在
"ConnectionStrings": { "AppConfig": "<你的连接字符串>" }的配置,确保和你用dotnet user-secrets set设置的内容一致。
内容的提问来源于stack exchange,提问作者maud
相关产品推荐
相关产品推荐

