【问题标题】:Environment variable inheritance in IISIIS 中的环境变量继承
【发布时间】:2018-08-06 17:24:40
【问题描述】:

IIS 中在站点级别设置的许多 web.config 设置由父站点的应用程序继承。我想在 IIS 的根级别设置 ASPNETCORE_ENVIRONMENT 环境变量,以便部署到该站点的每个应用程序都将在适当的环境下运行,例如“生产”。

当我使用 IIS 配置编辑器配置 ASPNETCORE_ENVIRONMENT 环境变量时,它在每个应用程序中都不可见。


这里是我设置它的地方:

部分:system.webServer/aspNetCore

发件人:“My.site.com/myApplication


有没有办法在 IIS 中配置环境变量,使其级联到所有子级?

【问题讨论】:

  • 为什么不直接使用...你知道...“环境变量”(操作系统级别的机器范围的变量)
  • 谢谢......你知道......对于“建议”。
  • 我是认真的。当您想在 IIS 根级别定义它时,它基本上对每个 ASP.NET Core 应用程序都有效。您也可以设置变量机器宽度,效果相同
  • 我去控制面板->系统->高级->环境变量并添加它然后重新启动我的应用程序池,但我的应用程序似乎没有得到它。就像未设置环境变量时一样,它会返回 502.5。如果我将它添加回我的应用程序,502.5 就会消失。
  • 另外,从命令提示符运行 SET 会显示它已设置。

标签: iis asp.net-core web-config environment-variables


【解决方案1】:

一种方法是在 IIS 管理器中设置服务器范围的环境变量。

  1. 打开 IIS 管理器。
  2. 在左侧边栏中选择服务器
  3. 在“管理”部分打开配置编辑器
  4. 选择部分system.webServer/aspNetCore
  5. 通过单击相应字段中的 ... 按钮打开环境变量
  6. 添加您的环境变量。
  7. 关闭窗口。
  8. 点击在右侧边栏中的应用

现在应该由网站或应用程序继承环境变量。

【讨论】:

  • 这就是我的目标,但我无法让它发挥作用。我设置了变量,但我的应用程序看不到它。我什至通过记录所有环境变量进行了测试,但我的新环境变量不存在。添加后我也尝试过IISReset。
  • 在您的 cmets 中,您说您已经通过控制面板->系统->高级->环境变量添加了变量。我描述的方式不同,它是通过 IIS 管理器完成的。正如克里斯所说,还要从 web.config 中删除您的变量。
  • 我都做了。我开始在 IIS 中设置它。 @Tseng 建议在操作系统级别添加,所以我也尝试了。结果是一样的。我在 IIS 中运行的应用程序只能看到我在 IIS 中添加的应用程序级别的环境变量。它还可以看到所有常见的嫌疑人,但不是我添加的嫌疑人。
  • 如果某些站点已经存在,然后您尝试在顶层添加 ASPNETCORE_ENVIRONMENT ,该环境变量是否仍会被现有站点继承?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 2023-01-19
  • 2017-03-08
相关资源
最近更新 更多