Environment:靜態類
System.Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");//讀取環境變量
IWebHostEnvironment對象中是一些該應用程序的環境信息,包括程序名稱信息,根目錄,環境名稱 等等基本信息
IWebHostEnvironment接口繼承IHostEnvironment接口
await context.Response.WriteAsync($"name=\"{env.ApplicationName}\""); await context.Response.WriteAsync($"name=\"{env.ContentRootFileProvider}\"");
//網站根目錄 await context.Response.WriteAsync($"name=\"{env.ContentRootPath}\""); await context.Response.WriteAsync($"name=\"{env.EnvironmentName}\"");
//wwwroot目錄對應的FileProvider await context.Response.WriteAsync($"name=\"{env.WebRootFileProvider}\"");
//wwwroot目錄
await context.Response.WriteAsync($"name=\"{env.WebRootPath}\"");
env.IsDevelopment();//是否開發環境,ASPNETCORE_ENVIRONMENT環境變量值是否是Development
env.IsProduction();//是否生產環境,ASPNETCORE_ENVIRONMENT環境變量值是否是Production
env.IsStaging();
env.IsEnvironment("ok");//ASPNETCORE_ENVIRONMENT環境變量值是否是ok
ASP.NET Core 在應用啟動時讀取環境變量 ASPNETCORE_ENVIRONMENT,ASPNETCORE_ENVIRONMENT 可設置為任意值,但框架僅支持三個值:Development(開發)、Staging(測試)、Production(生產)。 如果未設置 ASPNETCORE_ENVIRONMENT,則默認為 Production(即生產環境)
env.IsDevelopment();//是否開發環境
env.IsProduction();//是否生產環境
env.IsStaging();//是否測試環境
env.IsEnvironment("xxx");//是否自定義環境
設置環境變量的三種方法:
1、在CMD中設置(臨時): set ASPNETCORE_ENVIRONMENT=Staging
2、電腦環境變量全局設置:我的電腦屬性→環境變量→ASPNETCORE_ENVIRONMENT :Development
3、代碼層次launchSettings.json中配置,配置文件中有兩個選項,一個是IIS Express,一個是項目名稱,這兩個對應上面VS工具欄不同的啟動方式,省略的話默認為 Production環境。
注意:前兩種方式只適用於通過命令啟動的模式,如: dotnet ManyEnvironment.dll
IApplicationLifetime是用來綁定應用程序的運行時事件的
applicationLifetime.ApplicationStarted.Register(() => { Console.WriteLine("Strated"); }); applicationLifetime.ApplicationStopping.Register(() =>
{
Console.WriteLine("Stoping");
});
applicationLifetime.ApplicationStopped.Register(() =>
{
Console.WriteLine("Strated");
}
IHostApplicationLifetime:與IApplicationLifetime接口作用相同
參考:https://www.cnblogs.com/yaopengfei/p/10904178.html