2016-09-07 10 views
10

azureロールの設定は、IISが実行されている間に値をオンザフライで変更できるので非常に便利です。しかし、問題は、たくさんのユーザーがいて、ファイルから設定値を毎回読み込んだ場合、静的変数に入れずに使用するのがベストプラクティスではないということです。次の問題は、の静的変数に入れると、変更するたびにIISにリセットする必要があります。私はいくつかの研究を行い、同様の質問を発見しましたstackoverflow、これは最初の時間だけファイルにconfを読み取り、キャッシュに格納することを伝える。しかし、回答された質問はConfigurationManagerで、私は約RoleManagerからAzureです。RoleEnvironment.GetConfigurationSettingValueは毎回cfgファイルから読み込まれますか?

これは紺碧上の現在の設定を取得する行です:

RoleEnvironment.GetConfigurationSettingValue("Appname.settingKey"); 

これは、私はそれがどのように動作するかを知ってキャッシュに保存し1、で、現在の設定の元を取得します。:中のWebConfigのConnectionString:

ConfigurationManager.ConnectionStrings["SettingKey"].ConnectionString; 
+0

上記のスタックオーバーフローの問題へのリンクを共有できますか? –

+0

はい、確か:http://stackoverflow.com/questions/13357765/does-configurationmanager-appsettingskey-read-from-the-web-config-file-each-ti –

答えて

7

https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironment.changed.aspx ここは変更のためのリンクです。

あなたがダウンタイプに従っている場合、あなたはに取得することができます。一般の変化のために変更されたイベントに送信されたタイプである https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentchange.aspx

https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.serviceruntime.roleenvironmentconfigurationsettingchange.aspx

これが変更された設定値を示しています

は、具体的に、ここで設定値更新です。変更された値が含まれていないことに注意してください.Changeedイベントは変更が発生してから再度読み込むように、設定キャッシュもリセットするためです。

+0

これは 'RoleEnvironment.GetConfigurationSettingValue'がキャッシュするかどうかには答えません。それは? – schauhan

-1

をそれは設定にあなたが値を要求するたびに読むことはありません。設定値は、RoleEnvironment.Changedイベントでリフレッシュされます。

+0

あなたも説明できますか?キャッシュ、またはマイクロソフトからのURL、どのように私はあなたを信頼できますか? –

+1

実際には、ロードされたシステムを構築することは非常に基本的なことです。私は、賢い人がAzureをコーディングすると確信しています:)完全な証拠は見つかりませんでしたが、ここでは[Azure sdkのJavaソース](http://grepcode.com/ファイル/ repo1.maven.org/maven2/com.microsoft.windowsazure/microsoft-windowsazure-api/0.1.0/com/microsoft/windowsazure/serviceruntime/RoleEnvironment.java#RoleEnvironment.0currentEnvironmentData)と変数がキャッシュされます。 .netコードは似ているはずです。 – unconnected

+0

私はこの仕事をするdllを逆コンパイルしましたが、私が興味を持っていたものを理解できませんでした。私はAzureのプログラマーもこのような間違いをしないだろうと考えていますが、プロダクションアプリケーションの場合、ダブルチェックは誰にも傷つけません。 –

関連する問題