【问题标题】:AppHarbor Configuration Variables Not UpdatingAppHarbor 配置变量未更新
【发布时间】:2015-08-13 01:28:35
【问题描述】:

我正在将一个测试应用程序部署到 AppHarbor,并且我正在尝试让 AppHarbor 在部署时更新 ElephantSQL 插件的配置变量。

这些问题确实帮助解决了我的问题:

我的插件配置变量 - 键:ELEPHANTSQL_URL

我的自定义配置变量 - 键:foo 值:bar

现在查看 AppHarbor documentation 我所要做的就是将 appsetting 设置为与上面的键具有相同的名称。

这是我的 web.config:

  <connectionStrings>
    <add name="ELEPHANTSQL_URL" connectionString="Server=localhost;Database=foo;User Id=bar;Password=baz;" providerName="Npgsql" />
  </connectionStrings>
  <appSettings>
    <add key="ELEPHANTSQL_URL" value="dev"/>
    <add key="foo" value="baz"/>
  </appSettings>

这是我的 web.release.config(已设置为 Build Action: Content)

  <connectionStrings>
    <add name="ELEPHANTSQL_URL" connectionString="release" providerName="Npgsql" xdt:Transform="Replace" />
  </connectionStrings>
  <appSettings>
    <add key="ELEPHANTSQL_URL" value="release" xdt:Transform="Replace" />
    <add key="foo" value="release" xdt:Transform="Replace" />
  </appSettings>

我希望在 web.config 中看到发布值,但是当我下载构建源时,我会继续看到 dev 值。我读到的所有内容都说 appharbor 部署了发布配置并执行了转换,但我无法让它工作。

在构建日志中,没有提到转换,我不确定这是否正常(见下文)。

时间讯息
2015 年 8 月 12 日晚上 9:18 收到通知,正在排队构建
2015 年 8 月 12 日晚上 9:19 下载源
2015 年 8 月 12 日晚上 9:19 在 0.48 秒内下载源代码
2015 年 8 月 12 日晚上 9:19 开始 NuGet 包还原
8/12/15 9:19 PM NuGet 包还原完成显示日志 2015 年 8 月 12 日晚上 9:19 开始构建
2015 年 8 月 12 日晚上 9:19 0 个警告
2015 年 8 月 12 日晚上 9:19 构建在 3.9 秒内完成 显示日志 2015 年 8 月 12 日晚上 9:19 开始网站预编译
2015 年 8 月 12 日晚上 9:19 预编译在 11.24 秒内完成
2015 年 8 月 12 日晚上 9:19 开始测试
2015 年 8 月 12 日晚上 9:19 测试在 1.94 秒内完成
2015 年 8 月 12 日晚上 9:20 部署构建
2015 年 8 月 12 日晚上 9:20 检索到网站根目录 显示日志 2015 年 8 月 12 日晚上 9:20 构建成功部署

这是构建下载中的 web.config:

  <connectionStrings>
        <add name="ELEPHANTSQL_URL" connectionString="Server=localhost;Database=foo;User Id=bar;Password=baz;" providerName="Npgsql" />
  </connectionStrings>
  <appSettings>
    <add key="ELEPHANTSQL_URL" value="dev" />
    <add key="foo" value="baz" />
  </appSettings>

我不确定我错过了什么。

想法?

【问题讨论】:

    标签: c# .net web-config appharbor web.config-transform


    【解决方案1】:

    所以,我的代码中有一个错误,但下面的信息是我用来了解 AppHarbor 对配置变量所做的事情并允许我修复它的信息。

    article 包含有关配置变量如何工作的模糊细节,但这里是 TLDR。

    1. 配置变量仅适用于 AppSettings;您不能将它们与连接字符串一起使用
    2. AppSettings 键值必须与配置变量的名称匹配。
    3. Web.config 转换发生在配置变量更新之前。
    4. 最后一步是使用配置变量更新 AppSettings。

    来自 AppHarbor 支持的说明:

    您的应用的生产配置在 应用程序实际上已部署,因此如果您下载构建 构建日志页面中的工件,您将看不到任何新的 配置 - 这是一个“原始”构建,配置可能 如果您添加/删除配置变量、附加组件或以防万一,请更改 插件提供程序将新设置推送到 AppHarbor。

    因此,如果您需要/想要验证 AppSettings,您必须拥有访问该信息的自定义方式(日志记录、控制器操作等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2019-09-05
      • 2016-07-03
      • 2021-02-20
      • 1970-01-01
      相关资源
      最近更新 更多