我正在尝试创建一个启动脚本或任务来更改cscfg文件中的配置设置,该脚本或任务在角色启动时执行。
我可以访问这些设置,但无法成功更改它们。我希望能得到一些关于如何在角色开始时更改设置的建议,或者这是否可能。
谢谢。
编辑:我想要实现的目标
我正在尝试创建一项服务,以便更轻松地在Azure应用程序上配置配置值。现在,如果我想更改一个在7个不同环境下都相同的设置,我必须在7个不同的.cscfg文件中更改它。
我的想法是,我可以创建一个its服务,应用程序将查询其配置值。and服务将查找存储位置,如Azure表,并返回正确的配置值。这样,我可以只编辑表格中的一个值,并且它将在正确的环境中更快地进行更改。
我已经能够很容易地将其集成到部署脚本中(打包应用程序、获取设置、更改cscfg文件、部署)。这样做的问题是,每次您想要更改设置时,都必须重新部署。
发布于 2013-07-17 02:58:42
Black-o,考虑到您似乎希望管理多个部署(30+)之间的连接设置,我建议您使用单独的配置存储来更好地满足您的需求。这可以是Azure Storage (表,或者可能只是blob容器中的配置文件)、关系数据库,甚至可能是外部配置服务。
这些选项只需要将最少量的信息放入cscfg文件中(仅足以指向配置存储并对其进行授权),并允许您并排维护所有详细设置。
一个简单的示例可能使用单个存储帐户,将配置设置放入Azure表中,并使用“部署”ID作为分区键。然后,部署的配置文件只需要存储位置的连接信息(除非你想使用共享访问签名),以及它的部署ID。然后,可以在角色启动时检索配置设置,并在本地缓存它们以提高性能(可以在分布式内存缓存中,也可以在每个实例的临时“本地存储”驱动器中)。
将所有这些整合在一起的代码应该不会超过几个小时。只要确保你也考虑到了弹性,以防你选择的配置提供商不可用。
发布于 2013-07-16 14:24:20
在运行时更改设置的唯一方法是通过管理API -手工创建新设置并执行"Update Deployment“操作。这将是相当慢的,因为它遵循更新域。因此,根据您的实际问题,可能有更好的方法来解决它。
https://stackoverflow.com/questions/17661932
复制相似问题