Azure 云服务 - 未设置环境变量

问题描述 投票:0回答:1

我的云服务中的角色没有设置任何自定义环境变量。 --这意味着如果我枚举调用

Environment.GetEnvironmentVariables()
的结果,则仅设置标准环境变量(例如
PATH
或用户 ID)。

当我使用模拟器在本地调试云服务时,环境变量就在那里,所以我在这里有点不知所措。

相关.csdef:

<WebRole name="..." vmsize="Small">
    <ConfigurationSettings>
      <Setting name="FirstSetting" />
      <Setting name="AnotherSetting" />
    </ConfigurationSettings>
    <Runtime>
      <Environment>
        <Variable name="FirstSettingEnvVar">
          <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='FirstSetting']/@value" />
        </Variable>
        <Variable name="SecondSettingEnvVar">
          <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/ConfigurationSettings/ConfigurationSetting[@name='SecondSetting']/@value" />
        </Variable>
      </Environment>
    </Runtime>

以及相关的.cscfg:

<Role name="...">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="FirstSetting" value="ABCD" />
      <Setting name="SecondSetting" value="WXYZ" />
    </ConfigurationSettings>
</Role>
azure azure-cloud-services
1个回答
0
投票

所以我需要这个设置,因为我试图从 web.config 设置环境变量以链接到应用程序配置(https://learn.microsoft.com/en-us/azure/azure-app-configuration/quickstart -dotnet-app)。

结果我必须为批处理文件创建启动任务(提升权限)。让它设置变量,然后通过命令行重新启动 IIS(因为 GUI 无论如何都不能正常工作):-

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /v #KEY# /D #VAL#
iisreset /restart
net start w3svc

之后,嘿,很快就可以了。 IIS 将在此任务开始之前拍摄环境主机的快照,因此您必须重新启动它。此外,使用不会影响部署的 WebRole 类型,因为它全部在 IIS 中,而不是像 WorkerRole 类型那样的进程。

© www.soinside.com 2019 - 2024. All rights reserved.