更改Azure角色配置设置不会重新启动应用程序域?

时间:2013-01-31 19:10:43

标签: azure

我使用SquishIt捆绑我的脚本等,因此有一些代码在app启动时运行,它使用web.config的appSettings中指定的基本URL来配置捆绑包。我将代码更改为使用CloudConfigurationManager.GetSetting("CdnBaseHref"),因为我希望能够在通过Azure门户部署应用程序后更新URL。

但是,更新URL不会导致应用程序启动代码再次运行,因此我使用更新的设置有一段代码,启动代码仍然使用旧设置,这当然会破坏所有内容。

如何在更新此设置后让每个角色实例重新运行启动代码?

2 个答案:

答案 0 :(得分:3)

你是对的。更改角色配置设置不会重新启动应用程序域,这使您可以在不妨碍应用程序域的情况下动态更改应用程序行为(依赖于配置的代码)。

答案 1 :(得分:1)

您可以注册以侦听配置更改发生时触发的RoleEnvironment.Changing Event。当您检测到此事件时,您可以“刷新"你的静态变量与新值。您可以在msdn page上阅读更多详细信息。在变更之后还会有RoleEnvironment.Changed Event。这些事件可以在worker角色的OnStart()方法中注册。