1

我是 Azure (2.2) 的新手,正在尝试进行配置更改。我想使用的天蓝色配置中有一个标志。特别是,停止从队列中处理,并帮助进行暂存与生产迁移。

我已经从门户中的 config 上传了新配置,但是在玩了几个小时之后,它似乎总是会破坏并重新创建实例。

无论如何在不破坏实例的情况下更新配置文件?

谢谢

* 对回复的编辑和回答 *

我确实玩过改变/改变的事件。他们似乎确实运行了它,但重新启动将其清除了。

我的测试,我希望我能很好地解释我自己,但是如果你有一个静态计数器变量并且你默认它为 1 并且在更改/更改事件中并且每次事件触发时递增变量。我还将一个默认为“JUNK”的静态变量设置为事件中设置的新配置值。在多次上传具有大量值的配置并将静态值与直接从配置中读取的值进行比较后的结果始终是静态值恢复为默认值并读取了新的配置标志。应用程序域重新启动,所有初始化代码再次运行。这意味着我可以忽略设置更改事件并上传配置并让初始化再次发生,这是我试图避免的。

4

3 回答 3

3

我不认为当您更改配置设置值时角色实例会被销毁和重新创建。可以删除角色实例以应用该设置并重新启动(换句话说,重新启动)。如果您运行多个实例,则一次将更改应用于一个实例,以便您的应用程序继续工作。

RoleEnvironment类有一个Changing可用于该目的的事件。看看那个。我相信如果您将Cancel属性设置为false,则应用更改而不会删除实例。

Changing活动文档页面:

Changed 事件和 Changed 事件一起用于识别和管理对服务模型的配置更改。通过使用更改事件,实例可以通过以下方式之一响应配置更改:

  • 在运行时接受配置更改,而无需脱机。

  • 将 RoleEnvironmentChangingEventArgs 的 Cancel 属性设置为 true 以使实例脱机,应用配置更改,然后使实例重新联机。

通过使用 Cancel 属性,您可以确保实例按顺序关闭序列并在应用配置更改之前脱机。在关闭过程中,Windows Azure 引发 Stopping 事件,然后运行 ​​OnStop 方法中的任何代码。

于 2013-11-04T05:30:19.860 回答
1

如果您的设置在 ServiceConfiguration.cscfg 文件中,您只需在 Azure 门户中更新配置设置。浏览到云服务并选择配置选项卡。向下滚动到设置 - 更改值然后保存。

于 2013-11-03T23:35:48.727 回答
0

我不认为这是可能的。我需要进行的配置更改总是会重新启动实例。

于 2014-01-01T21:07:43.630 回答