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

AspNet Core 2.0 Web API部署为Windows Service时环境配置文件加载失败

解决Asp.Net Core 2.0 Windows服务环境配置文件加载失败的问题

嘿,这个坑我之前也踩过!你看代码里的这行:

.AddJsonFile("appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);

问题出在字符串插值的语法缺失上!

你现在写的是普通字符串,程序会傻乎乎地去找一个名叫appsettings.{env.EnvironmentName}.json的文件(连大括号都当成文件名的一部分),根本不会把env.EnvironmentName替换成实际的环境名称(比如Development)。这就是为什么硬编码文件名能正常工作,动态替换就失效了。

修复方法

只需要给字符串加上$前缀,启用C#的字符串插值功能:

config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);

额外验证小技巧

  1. 确认环境变量生效:
    你设置的ASPNETCORE_ENVIRONMENT得是系统级环境变量(Windows服务默认跑在系统上下文,用户级变量可能读不到),设置后记得重启服务甚至机器让变量生效。
  2. 临时加日志确认环境名称:
    可以在代码里插一行输出,看看实际拿到的环境名对不对:
    Console.WriteLine($"当前环境: {env.EnvironmentName}");
    
    能快速排查是不是环境变量没正确传递给服务。

内容的提问来源于stack exchange,提问作者Nicolas Boisvert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:40:23