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

升级ASP.NET Core 6.0至8.0后,如何无需手动添加代码启用用户机密?

解决方案

1. 检查项目文件中的UserSecretsId配置

升级项目时可能丢失了用户机密ID的配置,这是自动加载用户机密的必要前提。打开你的项目文件(.csproj),确认是否存在以下配置节点:

<PropertyGroup>
  <UserSecretsId>你的项目专属机密ID</UserSecretsId>
</PropertyGroup>

如果没有,添加该节点,ID值需与当前Secrets.json所在的文件夹名称一致(文件夹路径通常为 %APPDATA%\Microsoft\UserSecrets\{你的机密ID})。你也可以通过VS 2022右键项目→管理用户机密,自动生成并配置这个ID。

2. 确认开发环境配置

用户机密默认仅在Development环境下自动加载,检查你的launchSettings.json文件,确保ASPNETCORE_ENVIRONMENT环境变量设置为Development:

"profiles": {
  "你的应用名称": {
    "commandName": "Project",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

若环境变量被修改为Production等其他值,默认不会触发用户机密加载逻辑。

3. 验证默认配置链是否被修改

ASP.NET Core 8.0中,WebApplication.CreateBuilder()默认会在开发环境下自动包含用户机密加载逻辑(前提是项目有正确的UserSecretsId)。如果你的Program.cs中手动修改了配置源顺序或移除了默认配置提供者,可能导致用户机密不被加载。避免使用类似以下会覆盖默认配置链的代码:

// 此类代码会清除默认配置源,导致用户机密无法自动加载
builder.Configuration.Clear();
builder.Configuration.AddJsonFile("appsettings.json");

内容的提问来源于stack exchange,提问作者Mike Lenart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:27:34