ASP.NET Core-Environment、IWebHostEnvironment、IApplicationLifetime


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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM