私はステージングサーバーに2つのWebサイトを持ち、どちらもIISで動作するAsp.netコアサイトです。私は環境変数ASPNETCORE_ENVIRONMENT
をStaging
に設定しました。これはサイトのいずれかでうまく動作しますが、もう一方は変数を無視して代わりにプロダクションモードで実行します。ステージングモードで実行するには、ホスト環境をweb.config
ファイルに構成する必要があります。Asp.Netコアホスティング環境変数
1つのサイトが環境変数を考慮しない理由についてのヒントはありますか?
EDIT:私のStartup(IHostingEnvironment env)
コンストラクタの両方で 、私は環境変数を使用します。
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddJsonFile("logging.json")
.AddEnvironmentVariables(); // <---
Configuration = builder.Build();
}
2回目のチェックでASPNETCORE_ENVIRONMENT = Stagingを実行しますが、env.EnvironmentNameが "Production"を返し、appsettings.Staging.jsonの値は使用されていませんか?ところで、appsettings.Staging.jsonファイルを公開することを忘れないでください。 – Set
いずれのサイトでも 'appsettings.Staging.json'は使用しません。 ASPNETCORE_ENVIRONMENTはマシン全体に設定されています。 2番目のサイトログの起動ログ: "環境:生産" – Thaoden
Environment.GetEnvironmentVariable( "ASPNETCORE_ENVIRONMENT")が返すものを確認できますか? – Set