2017-12-10 15 views
2

私は、Azureでホストされている私のアプリケーションにSendGridを統合しようとしています。Azureアプリケーションの設定をローカルで取得するにはどうすればよいですか?

説明の1つは、私が行ったAzureにアプリケーション設定としてAPIキーを保存することです。

私はローカルでテストしようとしている、と私は試してみて、その設定を取得するとき、それはnullとして戻って来ています:

var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY"); 
私はそれが私のweb.configファイルにあることが必要かもしれない考え出したので、私が追加

それはまだ、nullとして戻ってくる。

これらの設定をローカルに取得する方法はありますか?または、どういうわけかローカルで稼働していると判断し、GetEnvironmentVariable()の代わりに別の方法を使用する必要がありますか?

答えて

3

あなたのweb.configファイルのセクションにSendGrid APIキーを配置します。

string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGridAPIKey"]; 

これは、両方のローカルおよびあなたAzureのWebアプリケーション内で動作します:あなたは、次のコード行でこの値を取得することができます

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    ... other web.config settings .... 
    <appSettings> 
     <add key="SendGridAPIKey" value="[Your key goes here]" /> 
    </appSettings> 
</configuration> 

:それはの線に沿って何かを見ていきます。

+0

ありがとうございます。しかし、私がAzureでホストされているサイトに変更を適用すると、Web.configではなくAzureのアプリケーション設定からAPIキーを取得したいと思います。私のAzure環境で)。どうやってやるの? – Steven

+1

こんにちはスティーブン、上記のコードは、実際には、Azure Webアプリケーションのアプリケーション設定にあるものを取得します。 Azure Web Appアプリケーションの設定が優先され、配備されたweb.configファイルで指定されているものを上書きします。したがって、Web.configの "foo"という名前のSendGridAPIKeyのappSettingと、 "bar"の値を持つSendGridAPIKeyというWebアプリケーションのアプリケーション設定がある場合、上記のコードはWebアプリケーションのアプリケーション設定が優先されます。私は実際にweb.configの変換に頼るのではなく、Web Appの設定でプロダクション設定を指定することを好む –

+1

ああ、私は分かりませんでした!ありがとう! – Steven

関連する問題