4

私はこれを見た場所を思い出すことができませんが、私の.NETコアMVCアプリケーションのために私のアプリケーション構成を設定するときにブログのアドバイスに従っています。私は私のアプリが必要ないくつかの設定を保持するために、このようなモデルを作成しました:Azureアプリの設定に変換する.NET Coreのアプリ設定を行う方法は?

public class BasePathSettings 
{ 
    public string BaseImageFolder { get; set; } 
    public string BaseApiUrl { get; set; } 
} 

私のスタートアップが、この...

public void ConfigureServices(IServiceCollection services) 
    { 
     ... 
     // this adds the base paths to container 
     services.Configure<BasePathSettings>(Configuration.GetSection("BasePathSettings")); 

     .... 
    } 

を持っており、appsettings.jsonはそれでこれを持っている:

"BasePathSettings": { 
    "BaseImageFolder": "D:\\Images\\", 
    "BaseApiUrl": "http://localhost:50321/" 
}, 

このような情報を必要とするコントローラを私は注入します....

これをローカルホスト上で実行すると、すべて正常に動作します。

しかし、このアプリケーションをAzureにデプロイすると、私はアプリケーションサービスの一般設定でアプリケーション設定を作成する必要があると思っていました。だから私はBasePathSettingsと呼ばれるアプリの設定を行い、その値に設定するためにJSONをコピー:

{ "BaseImageFolder": "imagePath", "BaseApiUrl": "apiUrl" } 

web.configファイルが正しい権限を持っていないと主張ConfigureServicesコードにだときのAzureがbarfsことが表示されますNTFS。本当の原因は、Azureアプリケーションの設定からjson値を読み取る方法です。

jsonも使用できますか?もしそうなら、異なったフォーマットが必要ですか?

答えて

4

jsonも使用できますか?もしそうなら、異なったフォーマットが必要ですか?

Azure Webアプリケーションに階層構造設定を追加するには、セクション名とキー名の間にコロンを挿入します。例えば、

use BasePathSettings:BaseImageFolder to set your folder 
use BasePathSettings:BaseApiUrl to set your url 
2

は、私が呼ばれるBasePathSettingsを設定するアプリを作って、

フォーマットがあるべき値に設定するためにJSONをコピー -

basepathsettings:baseimagefolder (just single slash) 
basepathsettings:baseapiurl 

enter image description here

関連する問題