Tha*_*den 12 environment-variables asp.net-core
我的登台服务器上有两个网站,都是在IIS中运行的Asp.net核心网站.我已将环境变量设置ASPNETCORE_ENVIRONMENT为Staging机器范围.这适用于其中一个站点,但另一个忽略变量并在生产模式下运行.我必须将托管环境配置到web.config文件中以在分段模式下运行它.
关于为什么一个站点不考虑环境变量的任何提示?
编辑:在我的两个Startup(IHostingEnvironment env)构造函数中,我使用环境变量:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddJsonFile("logging.json")
.AddEnvironmentVariables(); // <---
Configuration = builder.Build();
}
Run Code Online (Sandbox Code Playgroud)
小智 13
我刚刚花了几个小时处理同样的问题.我不确定结果是否会相同,因为您似乎有两个应用程序中的一个正常工作.
我通过Windows Server 2008 R2上的"高级系统设置"将ASPNETCORE_ENVIRONMENT设置为"Staging"作为系统变量,并始终在"生产"环境中结束(如果无法在任何地方找到设置,则这是默认环境).
使用命令提示符中的"设置"显示"ASPNETCORE_ENVIRONMENT = Staging"的预期结果.
调用Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")返回null.我创建了另一个名为"Test"的变量,它也返回null.调用任何其他现有变量返回预期结果.
我尝试回收应用程序池,更改应用程序池的用户,通过管理控制台重新启动IIS,甚至重新启动World Wide Web Publishing服务(可能与IIS mgmt控制台中的重置相同)都无济于事.
重新启动服务器是我可以让应用程序返回预期结果的唯一方法.
在 cmd 窗口中,运行net stop /y was && net start w3svc.
来源:ASP.NET Core Docs ->在 ASP.NET Core 中使用多个环境
注意:通过右键单击-> 停止-> 在 IIS 管理器中启动来重新启动 IIS将不起作用。
| 归档时间: |
|
| 查看次数: |
8419 次 |
| 最近记录: |