我有一个ASPNET Core 2.0 Windows服务在服务器A上执行。 它是使用以下方法创建的:
sc create...
服务器 A 的系统ASPNETCORE_ENVIRONMENT="暂存"。 Windows 服务使用应用程序设置。Staging.json 用于设置。
我想安装一个重复的Windows服务用于演示目的,该服务需要指向appsettings.demo.json进行设置。
ASPNET Core 2.0演示Windows服务如何使用唯一的ASPNETCORE_ENVIRONMENT="Demo"执行?
谢谢。
我遇到了这个确切的问题,您实际上可以通过传入命令行参数来设置环境。您需要像这样创建服务:
sc create MyDemoService binPath= "C:MyDemoService.exe --environment Demo"
这将传递一个参数,然后您可以在构建WebHost时在Program.cs的Main函数中使用该参数。这样:
var builder = new ConfigurationBuilder();
builder.AddCommandLine(args);
var config = builder.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
...
当我访问应用程序设置时。{EnvName}.json 在我的应用程序其他地方,我需要将IHostingEnvironment
注册为单例,然后我只能读取该服务的环境名称,而无需设置ASPNETCORE_ENVIRONMENT
。