2017-06-14 88 views
5

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

enter image description here

现在我要像下面

ConfigurationManager.AppSettings [ “MyWebApp.DbConnectionString”]读值;

但它返回空值。

在Web应用程序中从Web.config读取应用程序设置可以正常工作。

+2

你的意思是'稍后在我的web应用程序中读取应用程序设置工作正常。在什么情况下,你将这个值作为null?请用这些详细信息更新您的问题。 –

+0

作为一个测试,如果你使用一个没有句号的简单名字,它会起作用吗? –

回答

8

我找到了解决方案。

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

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

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

在web.config和Azure应用程序设置中保留键名相同。

+0

请记住,在门户网站中设置的值优先于web.config中的值 –

+1

在本地调试环境中,优先级适用于web.config和Azure应用程序设置的部署门户网站优先级。 – ABB

2

在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

相关问题