pau*_*guy 6 windows-services environment-variables asp.net-core
我有一个在服务器 A 上执行的 ASPNET Core 2.0 Windows 服务。它是使用以下方法创建的:
sc create...
Run Code Online (Sandbox Code Playgroud)
服务器 A 具有系统 ASPNETCORE_ENVIRONMENT="Staging"。Windows 服务使用 appsettings.Staging.json 进行设置。
我想为演示目的安装一个重复的 Windows 服务,它需要指向 appsettings.demo.json 进行设置。
如何使用独特的 ASPNETCORE_ENVIRONMENT="Demo" 执行 ASPNET Core 2.0 演示 Windows 服务?
谢谢。
我遇到了这个确切的问题,您实际上可以通过传入命令行参数来设置环境。您需要像这样创建您的服务:
sc create MyDemoService binPath= "C:\MyDemoService.exe --environment Demo"
Run Code Online (Sandbox Code Playgroud)
这将传入一个参数,然后您可以在构建 WebHost 时在 Program.cs 的 Main 函数中使用该参数。像这样:
var builder = new ConfigurationBuilder();
builder.AddCommandLine(args);
var config = builder.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
...
Run Code Online (Sandbox Code Playgroud)
当我访问应用程序中其他地方的 appsettings.{EnvName}.json 时,我需要将其注册IHostingEnvironment为单例,然后我只能读取该服务的环境名称,而无需设置ASPNETCORE_ENVIRONMENT.
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |