私はmacからIIS上にasp.net core 2.0 apiプロジェクトを展開しようとしています。環境ごとに異なる接続文字列を展開します。
開発、ステージング、本番環境用に異なるappsettings.jsonファイルを設定してから、展開スクリプトの一部としてdotnet -buildを使用して別の環境を呼び出す必要があります。
私はhttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/environmentsを見てきましたが、これは古いバージョンの.netコアのものです。 OSの環境を設定するのではなく、私はプログラムで設定したい(私のステージング環境と本番環境は同じサーバー用であるため)
私は私が実行したときに使用するappsettings.Development.jsonファイルを持っていますビルドコマンドの一部として環境変数を設定するだけで、appsettings.Production.jsonファイルがロードされているように見えません。
bash$ ASPNETCORE_ENVIRONMENT=Production dotnet run
Using launch settings from /Properties/launchSettings.json...
Hosting environment: Development
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.
最終的に私が構築する環境に応じて特定の接続文字列を展開しようとしています。これを行うより良い方法はありますか?
更新
助け、加えて、私が見つけた下記のクリスの答え@以下:
毎のIISアプリケーションプール あなたは(IIS上でサポート孤立アプリケーションプールで実行されている個々のアプリケーションのための環境変数を設定する必要がある場合10.0 +)については、IISリファレンスドキュメントの「環境変数」トピックのAppCmd.exeコマンドセクションを参照してください。ドキュメントは、ASP.NETコアの古いバージョンのためではありません
コードの 'appsettings。{environment} .json'ファイルを扱う方法を示します。 – Set
@Setは完全に正しいです。プロダクション用に 'appsettings.production.json'、ステージング用に' appsettings.staging.json'、開発用に 'appsettings.development.json'が必要です。覚えておかなければならないのは、他のappsettingsファイルが見つからなければ、 'appsettings.json'が使われるということです。 –
@JamieTaylor: 'appsettings.json'は常に*使用されます。環境固有のファイルは単純に上書きされます。 –