我在c#中创建了一个Azure WebJob。我在Azure上有一个Web应用程序,我将我的WebJob添加到我的订阅中,一切都很好,但在应用程序设置中我添加了一个新条目,例如:
<add key="MyDesiredKey" value="1234" />
如果在azure上运行我的密钥进入我的应用程序?如何?
我尝试这样但不工作,在这种情况下,不需要在我的网络配置中没有那个键吗?当webjob运行时需要从我在Azure上存储的webapp的Appsettings中获取价值
var keyFromAzureApp = ConfigurationManager.AppSettings["MyDesiredKey"];
答案 0 :(得分:7)
如果在azure上运行我的密钥进入我的应用程序?如何?
根据我的测试,如果我们在azure门户上没有设置,我们将在Webjob中获得null值。请将它添加到天蓝色的门户网站上,更多细节请参见截图。
执行此操作后,以下所有方法都可以正常工作
var myDesiredKey = ConfigurationManager.AppSettings["MyDesiredKey"];
var environmentmyDesiredKey = Environment.GetEnvironmentVariable("MyDesiredKey");
var cloudmyDesiredKey = CloudConfigurationManager.GetSetting("MyDesiredKey");
答案 1 :(得分:3)
使用CloudConfigurationManager,因为它使用回退机制在多个地方尝试。
var keyFromAzureApp = CloudConfigurationManager.GetSetting("MyDesiredKey");
查看this以了解何时使用CloudConfigurationManager
答案 2 :(得分:2)
正如bradbury9所解释的那样,你可以使用System.Configuration.ConfigurationManager.AppSettings
[&#34; my-Key-Value&#34;]。
如果在门户中添加应用程序设置会更好。这些将在运行时以环境变量的形式提供给实例上的所有进程。
对于应用设置,相应环境变量的名称前缀为 APPSETTING_
。
这是一篇博客文章,其中描述了这一点:https://azure.microsoft.com/en-in/blog/windows-azure-web-sites-how-application-strings-and-connection-strings-work/