我需要从Azure cscfg文件中获取所有配置设置(当前角色或所有角色无关紧要)。我想这样做是因为我不希望通过RoleEnvironment.GetConfigurationSettingValue(key)方法逐个获取所有值。
有没有办法做到这一点?
此致
答案 0 :(得分: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(“”,EntryPoint =“”,CallingConvention = CallingConvention.StdCall,SetLastError = true)] 内部静态外部不安全int modopt(IsLong)modopt(CallConvStdcall)RdGetApplicationConfigurationSetting(ushort modopt(IsConst),ushort *);
答案 1 :(得分:1)
这似乎是一种略微圆润的方式,但如果您想获得部署中所有角色的配置,您可以使用management api。
答案 2 :(得分:0)
Kudu有一个API。
你可以通过App Services获得Kudu>高级详细信息>转到
https://{app-service-name}.scm.azurewebsites.net/
要么
https://{app-service-name}-{slot-name}.scm.azurewebsites.net/
设置API的网址是:
https://{app-service-name}.azurewebsites.net/api/settings
或https://{app-service-name}-{slot-name}.scm.azurewebsites.net/