1

我正在尝试创建一个启动脚本或任务来更改 cscfg 文件中的配置设置,它在角色启动时执行。

我可以访问这些设置,但无法成功更改它们。我希望获得有关如何更改角色开始设置的指针,或者是否有可能。

谢谢。

编辑:我想要完成的事情

我正在尝试提供一项服务,以便更轻松地在 Azure 应用程序上配置配置值。现在,如果我想在 7 个不同的环境中更改相同的设置,我必须在 7 个不同的 .cscfg 文件中更改它。

我的想法是我可以创建一个 web 服务,应用程序将查询它的配置值。Web 服务将在存储位置(如 Azure 表)中查找,并返回正确的配置值。这样,我可以只编辑表格中的一个值,并且它会在正确的环境中更快地更改。

我已经能够很容易地将它集成到部署脚本中(打包应用程序,获取设置,更改 cscfg 文件,部署)。问题是每次您想更改设置时,都必须重新部署。

4

2 回答 2

1

Black-o,鉴于您似乎希望管理多个部署 (30+) 之间的连接设置,我建议您使用单独的配置存储可能会更好地满足您的需求。这可能是 Azure 存储(表,或者可能只是 Blob 容器中的配置文件)、关系数据库,甚至可能是外部配置服务。

这些选项只需要将最少量的信息放入 cscfg 文件(刚好足以指向和授权配置存储),并允许您并排维护所有详细设置。

一个简单的示例可能使用单个存储帐户,将配置设置放入 Azure 表,并使用“部署”ID 作为分区键。然后,用于部署的配置文件只需要存储位置的连接信息(除非您想使用共享访问签名)及其部署 ID。然后可以在角色启动时检索配置设置并将它们缓存在本地以提高性能(在分布式内存缓存中或可能在每个实例的临时“本地存储”驱动器上)。

将所有这些组合在一起的代码不应该超过几个小时。只要确保您还考虑了弹性,以防您选择的配置提供程序不可用。

于 2013-07-16T18:58:42.113 回答
0

在运行时更改设置的唯一方法是通过管理 API - 制作新设置并执行“更新部署”操作。这会很慢,因为它尊重更新域。因此,根据您的实际问题,可能会有更好的方法来解决它。

于 2013-07-16T06:24:19.530 回答