2017-06-14 14 views
5

Windows Azureプレビューポータルのアプリケーション設定セクションを使用して、私のAzure Webアプリケーションのキーと値のペアを構成しようとしています。今、私はAzure Webサイトのアプリケーション設定値を読み取る方法

ConfigurationManager.AppSettings [ "MyWebApp.DbConnectionString"]以下のような値を読み取るしようとしています

enter image description here

ただし、null値を返します。

WebアプリケーションのWeb.configからアプリの設定を読み込んでも問題ありません。

+2

「ウェブアプリケーションの後でアプリケーション設定を読み込むのはうまくいく」ということはどういう意味ですか?どのような条件でこの値をnullにしていますか?これらの詳細について質問を更新してください。 –

+0

期間を指定しない単純な名前を使用すると、テストとして機能しますか? –

答えて

8

解決策が見つかりました。

値をweb.configとAzure Appの設定で保持します。ローカル環境でアプリケーションを実行/デバッグする場合、web.configから値が選択されます。

アプリケーションをAzureにデプロイすると、アプリケーション設定から値が選択されます。

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

Web.configとAzureアプリの設定でキー名を同じにします。

+0

ポータルに設定されている値がweb.configの値よりも優先されることを覚えておいてください。 –

+1

ローカルデバッグ環境では、Web.configとAzureアプリケーション設定のデプロイメントポータル優先度が優先されます。 – ABB

2

Azureでは、アプリケーション設定と接続文字列を取得する方法がいくつかあります。ただし、接続文字列は、バニラアプリケーションの設定とは少し異なります。

アプリケーション設定は、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を参照してください。

接続文字列は、ポータル内の文字列を作成するときに選択したデータベースの種類に応じて、異なる接頭辞を持っています。

関連する問題