2012-01-03 150 views
8

我需要从Azure cscfg文件获取所有配置设置(当前角色或所有角色无关紧要)。我想这样做,因为我不想通过RoleEnvironment.GetConfigurationSettingValue(key)方法逐个获取所有值。如何从Azure配置文件获取所有配置设置?

有没有办法做到这一点?

问候

+0

你想要为当前正在运行的应用程序执行此操作? – 2012-01-03 13:06:18

回答

2

简短的回答是“不”的RoleEnvironment不支持获取所有的配置设定值。

稍微长一点的答案是,从当前实现中的角色环境获取配置设置是通过调用本机代码完成的。不管怎样,Windows Azure应用程序与Windows Azure配置的分离以及在正在运行的应用程序上交换设置的能力都是其根源。这是在msshrtmi.dll中完成的(它应该是类似于Microsoft Shared Runtime Managed Interop的东西)。这是唯一的参考Microsoft.WindowsAzure.ServiceRuntime.dll不同于对.NET的标准引用。

这里是方法调用本机代码(我还没有超过这个走得更远):

[MethodImpl(MethodImplOptions.Unmanaged,MethodCodeType = MethodCodeType.Native),SuppressUnmanagedCodeSecurity,的DllImport( “”,入口点=” (CallConvStdcall)RdGetApplicationConfigurationSetting(ushort modopt(IsConst),ushort *);这是一个非常有用的方法。

1

这看起来像是一种稍微圆滑的方式,但如果要获取部署中所有角色的配置,则可以使用management api

0

Kudu为此提供了一个API。

你到捻通过应用服务,如>高级详细信息>转至

https://{app-service-name}.scm.azurewebsites.net/https://{app-service-name}-{slot-name}.scm.azurewebsites.net/

的URL设置API是:

https://{app-service-name}.azurewebsites.net/api/settingshttps://{app-service-name}-{slot-name}.scm.azurewebsites.net/