.NET 多环境切换

参考

在 ASP.NET Core 中使用多个环境 | Microsoft Learn

.Net Core 多环境的配置、调试和部署 - 朱角 - 博客园 (cnblogs.com)

开发环境

创建配置文件

分别新建配置文件 ProdutionStaging

填写内容 ASPNETCORE_ENVIRONMENT = Prodution or Staging

新建json文件

复制appsettings.Development.json两次,分别重命名为appsettings.Production.jsonappsettings.Staging.json

并且分别新建 Tip 属性,标明当前环境

改写Controller

csharp 复制代码
[ApiController]
[Route("[controller]/[action]")]
public class WeatherForecastController : ControllerBase
{
    private readonly IConfiguration Configuration;

    public WeatherForecastController(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    [HttpGet]
    public ActionResult GetCustomConfig()
    {
        return Content($@"读取CustomConfig配置为:{Configuration["Tip"]}");
    }
}

测试

  1. 默认情况下读取的是开发环境配置(appsettings.Production.json)
  1. 切换为 Staging 预览环境

输出正确

  1. 选择 Production 生产环境

输出正常

项目发布

发布项目

点击发布后选择发布为文件,然后无脑下一步

修改配置文件

发布后会生成PublishProfiles文件夹

将子文件复制,并且分别改名为Production.pubxmlStaging.pubxml

并且分别添加一行 <EnvironmentName>xxxx</EnvironmentName>

指定发布环境

可以在发布前指定环境配置

发布后的环境配置,可以在web.config中查看

测试

修改Program.cs代码,这样即使是在生产环境也能使用swagger

生产环境

项目已部署到iis中,输出正确

预览环境

修改 web.config 文件中 value 的值

刷新swagger页面,输出正确

相关推荐
独自归家的兔5 小时前
基于 cosyvoice-v3-plus 的简单语音合成
人工智能·后端·语音复刻
踏浪无痕5 小时前
从 node-exporter 学如何写出可复用的监控指标
运维·后端·架构
wanghowie6 小时前
01.01 Spring核心|IoC容器深度解析
java·后端·spring
Java中文社群6 小时前
国内直连GPT、Claude和Gemini?N8N这次更新真的绝了!
人工智能·后端
SimonKing6 小时前
MyBatis的隐形炸弹:selectByExampleWithBLOBs使用不当,让性能下降80%
java·后端·程序员
踏浪无痕6 小时前
告别 Grafana 手搓 Dashboard:基于指标分组的 Prometheus 可视化新方案
后端·架构·产品
天天摸鱼的java工程师6 小时前
分布式 ID 生成终极方案:雪花算法优化与高可用实现
java·后端
掘金者阿豪6 小时前
Jenkins 任务中的 `java.lang.InterruptedException` 异常解析与解决
后端
superman超哥6 小时前
Rust 零拷贝技术应用:极致性能的内存操作艺术
开发语言·后端·rust·rust零拷贝技术·内存操作
间彧6 小时前
深度解析AIOps:从架构设计到工具实践的智能运维体系
后端