1. ホーム
  2. c#

[解決済み] ASP.NET CoreのProgram.Mainで環境名にアクセスする

2023-02-09 05:01:02

質問

ASP.NET Mvc Core を使って、開発環境を https にする必要があったので、以下のように Main というメソッドを Program.cs に追加しました。

var host = new WebHostBuilder()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .UseKestrel(cfg => cfg.UseHttps("ssl-dev.pfx", "Password"))
                .UseUrls("https://localhost:5000")
                .UseApplicationInsights()
                .Build();
                host.Run();

プロトコル/ポート番号/証明書を条件付きで設定できるように、ここのホスティング環境にアクセスするにはどうしたらよいでしょうか?

理想的には、CLIを使用して、このようにホスティング環境を操作するだけです。

dotnet run --server.urls https://localhost:5000 --cert ssl-dev.pfx password

とありますが、コマンドラインから証明書を使用する方法はないようです。

どのように解決するのですか?

最も簡単な解決策は、値を ASPNETCORE_ENVIRONMENT 環境変数から値を読み、それを Environments.Development :

var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
var isDevelopment = environment == Environments.Development;