每次从cfg文件读取RoleEnvironment.GetConfigurationSettingValue吗?

时间:2016-09-07 14:31:22

标签: c# .net azure iis

azure角色设置非常有用,因为它允许您在 IIS 运行时即时更改值。但问题是,如果你有足够的用户,并且每次从文件中读取配置值时,最好不要将它放在静态变量中使用它。下一个问题是,如果您将其置于静态变量中,则每次更改时都必须重置 IIS 。我做了一些研究,并在 stackoverflow 上发现了类似的问题,它告诉我们只有第一次读取文件中的conf,然后才将其存储在缓存中。但是,回答的问题是 ConfigurationManager ,我的是来自 Azure RoleManager

这是获取 azure 的当前设置的行:

RoleEnvironment.GetConfigurationSettingValue("Appname.settingKey");

这是将其保存在缓存中的一个,我知道它是如何工作的,并在 webconfig 中获取当前设置: connectionstring

ConfigurationManager.ConnectionStrings["SettingKey"].ConnectionString;

2 个答案:

答案 0 :(得分:7)

https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironment.changed.aspx 这是改变的链接。

如果您按下类型,您可以访问: https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentchange.aspx

这是发送给Changed事件的类型,用于更改。

具体来说,这是配置值更新: https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentconfigurationsettingchange.aspx

列出已更改的设置。请注意,它不包括更改的值,只包括设置的名称,这是因为Changed事件也会重置配置缓存,因此您可以在发生更改后再次读取它。

答案 1 :(得分:-1)

每次请求值时,它都不会读取配置。将在RoleEnvironment.Changed事件上刷新配置值。