AspNet Core 2.0 Windows Service和唯一的ASPNETCORE_ENVIRONMENT变量



我有一个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

相关内容

最新更新