.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页面,输出正确

相关推荐
爱读源码的大都督21 小时前
Java已死?别慌,看我如何用Java手写一个Qwen Code Agent,拯救Java
java·人工智能·后端
星辰大海的精灵1 天前
SpringBoot与Quartz整合,实现订单自动取消功能
java·后端·算法
天天摸鱼的java工程师1 天前
RestTemplate 如何优化连接池?—— 八年 Java 开发的踩坑与优化指南
java·后端
一乐小哥1 天前
一口气同步10年豆瓣记录———豆瓣书影音同步 Notion分享 🚀
后端·python
LSTM971 天前
如何使用C#实现Excel和CSV互转:基于Spire.XLS for .NET的专业指南
后端
三十_1 天前
【NestJS】构建可复用的数据存储模块 - 动态模块
前端·后端·nestjs
武子康1 天前
大数据-91 Spark广播变量:高效共享只读数据的最佳实践 RDD+Scala编程
大数据·后端·spark
努力的小郑1 天前
MySQL索引(二):覆盖索引、最左前缀原则与索引下推详解
后端·mysql
阿拉伦1 天前
智能交通拥堵治理柔性设计实践复盘小结
后端
用户4099322502121 天前
如何在 FastAPI 中优雅地模拟多模块集成测试?
后端·ai编程·trae