【发布时间】:2018-02-16 00:48:18
【问题描述】:
我使用 PowerShell 将值“Test”设置为 ASPNETCORE_ENVIRONMENT,但是当我启动我的应用程序时,它会从 launchSettings.json 获取值。
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Test", "Machine")
如果我从 launchSettings.json 中删除该值,该值将变为“Production”,而不是“Test”。
我做错了什么?
我会将它部署到 AWS Beanstalk 上的两个不同应用程序中,并且我将发送一个脚本文件来更改环境变量。
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
我的launchSettings.json
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:60511/",
"sslPort": 44392
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "myapp",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MonitoraApi": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "myapp",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:60512"
}
}
}
【问题讨论】:
-
你用过AddEnvironmentVariables(IConfigurationBuilder, String)。您可以尝试向我们展示一些代码。
-
您是否将其添加到运行 ASP 服务的任何用户的环境中?
-
您是否在同一个 powershell 脚本中运行您的应用程序? Powershell 只能为当前会话设置环境变量,当脚本结束时它们会被还原。
标签: c# asp.net-core