2017-06-14 36 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

相關問題