我在服务器A上执行了ASPNET Core 2.0 Windows Service。它是使用以下命令创建的:
sc create...
服务器A具有系统ASPNETCORE_ENVIRONMENT =“ Staging”。 Windows服务使用appsettings.Staging.json进行设置。
我想为演示目的安装一个重复的Windows服务,该服务需要指向appsettings.demo.json进行设置。
如何使用唯一的ASPNETCORE_ENVIRONMENT =“ Demo”执行ASPNET Core 2.0演示Windows服务?
谢谢。
答案 0 :(得分:2)
我遇到了这个确切的问题,您实际上可以通过传递命令行参数来设置环境。您将需要像这样创建服务:
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
。