我有一个 Azure Web 应用程序,其中包含 2 个已部署的 Web 应用程序。每个都作为虚拟应用程序位于单独的目录中。两个 Web 应用程序几乎相同,只是它们使用不同的应用程序设置/环境变量 PORTAL_KEY
(如客户端开关):
但这两个虚拟应用程序都只能识别PORTAL_KEY=Portal1
。我想区分子文件夹
- /portal1 获取
PORTAL_KEY=Portal1
和 - /portal2 获取
PORTAL_KEY=Portal2
环境变量。
如何在不修改每个文件夹中的 appsettings.json 的情况下实现这一目标(因为它们将被下一个 Web 部署覆盖)。
最佳答案
一个 Azure Web App 中的所有虚拟应用程序都在同一 IIS 进程 (w3wp.exe) 中运行,因此它们不能具有不同的环境变量。
一些可能的替代方案:
- 为每个虚拟应用程序使用不同的应用程序设置键,例如
APP1_PORTAL_KEY
与APP2_PORTAL_KEY
。您可以在代码中创建一个包装器,在查询环境时添加正确的后缀。 - 为每个应用程序使用不同的 Azure Web 应用程序,而不是虚拟应用程序。这给你最大的分离度。
关于azure - 虚拟应用程序的不同应用程序设置/环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427176/