如何阅读Azure网站应用程序设置值

时间:2017-06-14 10:39:18

标签: c# .net asp.net-mvc azure azure-web-sites

我正在尝试使用Windows Azure预览门户上的应用程序设置部分为我的Azure Web应用程序配置一些键/值对。

enter image description here

现在我正在尝试阅读下面的值

ConfigurationManager.AppSettings [" MyWebApp.DbConnectionString"];

但它返回空值。

在我的网络应用程序中从Web.config中读取应用程序设置正常。

3 个答案:

答案 0 :(得分:31)

我找到了解决方案。

将值保存在web.config以及Azure App设置中。当您在本地环境中运行/调试应用程序时,它会从web.config中选择值。

在Azure上部署应用程序时,它会从应用程序设置中选择值。

//Below code work for both.
ConfigurationManager.AppSettings["KeyName"]

在web.config以及Azure应用程序设置中保持密钥名称相同。

答案 1 :(得分:12)

在Azure中,有几种不同的方法可以检索应用程序设置和连接字符串。但是,连接字符串与vanilla应用程序设置的工作方式略有不同。

可以通过任何方法检索应用程序设置,无论它们是否存在于Web.config文件中。

如果字符串在Web.config中定义,也可以通过任何方法检索连接字符串。但是,如果未在Web.config中定义连接字符串,则只能使用环境变量方法检索它。

检索为环境变量

Environment.GetEnvironmentVariable("APPSETTING_my-setting-key");
Environment.GetEnvironmentVariable("SQLAZURECONNSTR_my-connection-string-key");

请注意,在使用此方法时,必须在键之前添加指定其类型的字符串。

所有应用程序设置都使用APPSETTING_前缀。

连接字符串具有不同的前缀,具体取决于在门户网站中创建字符串时选择的数据库类型:

"Sql Databases" --> "SQLAZURECONNSTR_my-connection-string-key"
"SQL Server" --> "SQLCONNSTR_my-connection-string-key"
"MySQL" --> "MYSQLCONNSTR_my-connection-string-key"
"Custom" --> "CUSTOMCONNSTR_my-connection-string-key"

有关完整概述,请参阅Windows Azure Web Sites documentation

答案 2 :(得分:1)

System.Environment.GetEnvironmentVariable("SERVICEBUS_CONNECTION")

效果很好!