我正在尝试使用Windows Azure预览门户上的应用程序设置部分为我的Azure Web应用程序配置一些键/值对。
现在我正在尝试阅读下面的值
ConfigurationManager.AppSettings [" MyWebApp.DbConnectionString"];
但它返回空值。
在我的网络应用程序中从Web.config中读取应用程序设置正常。
答案 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")
效果很好!