Test/Production Azure WebJob 配置

Test/Production configuration for Azure WebJob

我有一个 Azure 网站项目和与之相关的 WebJob 项目。 WebJob 项目需要连接到外部 SOAP 服务。因此,我必须在 app.config 中放入以下块:

  <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_MyExternalClassName">
                    <security mode="Transport">
                        <transport clientCredentialType="Certificate" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="<<external URL>>" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_MyExternalClassName" contract="xxxxx" name="WSHttpBinding_MyExternalClassName" />
        </client>
    </system.serviceModel>

问题是我需要针对不同的部署场景(测试和生产)更改 "endpoint" 节点中 <<external URL>> 的值。 WebJob SDK 似乎从父应用程序获取连接字符串和应用程序设置,但是这个特定的 SOAP 相关服务设置是什么? 我如何管理 testing/production 场景?

将 soap URL appSettings 部分放入 web.config。然后使用 ConfigurationManager 或 CloudConfigurationManager 读取它。显然你必须在创建 wcf 客户端时在代码中手动设置 url。

  <appSettings>
    <add key="soapurl" value="http://..." />
  </appSettings>