4

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

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

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

4

2 回答 2

3

你是对的。更改角色配置设置不会重新启动应用程序域,这使您能够在不妨碍应用程序域的情况下即时更改应用程序行为(取决于配置的代码)。

于 2013-05-13T11:02:43.680 回答
1

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

于 2016-10-19T09:37:59.227 回答