【问题标题】:Configure Azure Cache (<dataCacheClients>...) of WebRole in cscfg file?在 cscfg 文件中配置 WebRole 的 Azure 缓存 (<dataCacheClients>...)?
【发布时间】:2012-02-21 22:27:07
【问题描述】:

目前,我有我的 Azure 缓存配置

<dataCacheClients>
  <dataCacheClient name="default">
    ...

在我的 Azure WebRole 的 Web.config 中。我希望能够在创建 cspkg 包后轻松修改 Azure 缓存设置,即将配置移动到 cscfg 文件中。

如果不对 Azure 缓存的所有可能配置选项进行手动编码(然后解释这些选项并在 DataCacheFactory 中以编程方式设置配置),我认为这是不可能的。我是否忽略了什么?

【问题讨论】:

    标签: azure-appfabric


    【解决方案1】:

    在 webrole (RoleEntryPoint derived class) onstart 中,您可以使用 .cscfg 文件中的相关设置覆盖 web.config 缓存部分

    还将事件处理程序添加到将(RoleEnvironment.Changing += RoleEnvironmentChanging;) 更改为e.Cancel = true 的环境中,以便当您更改.cscfg @ 管理门户时webrole 会重新启动

    【讨论】:

    • 嗯,是的,您可以以某种方式将所有 dataCacheClient 选项作为键/值对添加到 cscfg,然后将它们解析出来并手动执行您想要的任何操作。我想避免手动部分。
    【解决方案2】:

    一种方法是将 .cspkg 文件重命名为 .zip 文件。然后解压缩文件并查看文件。您将找到代表每个 webrole / 工作角色的 .cssx 文件(较大的文件)。重命名为 .zip 并展开。然后你会找到一个“approot”文件夹。您的 dll、webconfig 等都在那里。你可以弄乱 webconfig 和 zip+rename 回去的路。

    它一点也不优雅,但有时​​是弄清楚你到底在发布什么的最好方法。

    【讨论】:

    • 这也是我们当时的第一次尝试,但没有成功,因为该文件中包含的是校验和,而当您尝试运行(或部署)时,我忘记了在哪一步确切地说)修改后的 .cspkg 文件 Azure 不会让你这样做。我最终没有实现它,但我相信我们现在正在使用 MS 提供的命令行工具进行(重新)打包,并将其作为我们构建过程的一部分。
    • 说实话,当我想确切地知道我在部署什么时,我会这样做。我再也没有尝试过压缩它。对不起,它没有帮助:(
    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多