首頁  >  文章  >  後端開發  >  ASP.NET Core中新功能--環境變數與啟動設置

ASP.NET Core中新功能--環境變數與啟動設置

零下一度
零下一度原創
2017-07-09 11:51:113364瀏覽

這篇文章主要為大家詳細介紹了ASP.NET Core環境變數和啟動設定的設定教程,具有一定的參考價值,有興趣的小夥伴們可以參考一下

在這一部分內容中,我們來討論ASP.NET Core中的一個新功能:環境變數和啟動設置,它將開發過程中的調試和測試變的更加簡單。我們只需要簡單的修改設定檔,就可以實現開發、預演、生產環境的切換。

ASPNETCORE_ENVIRONMENT

ASP.NET Core控制環境切換最核心的東西是「ASPNETCORE_ENVIRONMENT」環境變量,它直接控制目前應用程式運行的環境類型。您可以透過在項目上右鍵選單選擇「屬性」選項,然後切換到「偵錯」標籤來修改此環境變數。

此環境變數框架預設提供了三個值,當然您也可以定義其它的值:

Development(開發)
Staging(預覽)
Production(生產)

我們在Startup.cs檔案中,可以使用對應的方法來控制應用程式的行為。以下是創建範例程式時Startup.cs檔案產生的預設程式碼:


// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
 {
  loggerFactory.AddConsole(Configuration.GetSection("Logging"));
  loggerFactory.AddDebug();

  if (env.IsDevelopment())
  {
  app.UseDeveloperExceptionPage();
  app.UseBrowserLink();
  }
  else
  {
  app.UseExceptionHandler("/Home/Error");
  }

  app.UseStaticFiles();

  app.UseMvc(routes =>
  {
  routes.MapRoute(
   name: "default",
   template: "{controller=Home}/{action=Index}/{id?}");
  });
 }

其中IHostingEnvironment 類型的變數表示的是目前應用程式運行的環境,ASP.Net Core提供了四個擴充方法,用於檢測“ASPNETCORE_ENVIRONMENT”目前的值。

IsDevelopment()
IsStaging()
IsProduction()
IsEnvironment()

如果您需要檢查該應用程式是否在特定環境中執行,可以使用env.IsEnvironment("environmentname") ,該方法忽略大小寫(請不要使用env.EnvironmentName == "Development" 來檢查環境)。

過上面的程式碼,我們可以知道,如果目前是開發環境,使用UseDeveloperExceptionPage()、UseBrowserLink()方法啟用開發環境的錯誤頁面和啟用Visual Stuido中的Browser Link功能,這些功能都有利於我們在開發過程中調試程式;但是在生產環境中我們不希望啟用這些功能,而是將出錯頁面指向路徑“/Home/Error”,給用戶顯示友好的錯誤介面。

launchSettings.json文件

ASP.Net Core包含一個launchSettings.json的新文件,您可以在專案中「Properties」資料夾中找到該文件:

此檔案設定了Visual Studio可以啟動的不同環境,以下是範例專案中launchSettings.json檔案產生的預設程式碼:  


#
{
 "iisSettings": {
 "windowsAuthentication": false,
 "anonymousAuthentication": true,
 "iisExpress": {
 "applicationUrl": "http://localhost:22437/",
 "sslPort": 0
 }
 },
 "profiles": {
 "IIS Express": {
 "commandName": "IISExpress",
 "launchBrowser": true, 
 "environmentVariables": { 
 "ASPNETCORE_ENVIRONMENT": "Development"
 }
 },
 "CoreWebApp": {
 "commandName": "Project",
 "launchBrowser": true,
 "environmentVariables": {
 "ASPNETCORE_ENVIRONMENT": "Development"
 },
 "applicationUrl": "http://localhost:22438"
 }
 }
}

在這裡,有兩個配置節點:“IIS Express”、“CoreWebApp”,這兩個節點,分別對應Visual Stuido的開始調試按鈕的下拉選項:

launchSettings.json 檔案用於設定在Visual Stuido 執行應用程式的環境。我們也可以新增節點,該節點名稱會自動新增到 Visual Stuido 偵錯按鈕的下拉選項中。

現在我們來詳細說一下這些屬性的詳細資訊:  


#
{
 "iisSettings": {
 "windowsAuthentication": false,//启用Windows身份验证
 "anonymousAuthentication": true,//启用匿名身份验证
 "iisExpress": {
 "applicationUrl": "http://localhost:22437/",//应用启动的Url路径。
 "sslPort": 44355//启用SSL的端口
 }
 },
 "profiles": {
 "IIS Express": {
 "commandName": "IISExpress",
 "commandLineArgs": "", //传递命令的参数
 "workingDirectory": "", //设置命令的工作目录
 "launchBrowser": true, //是否在浏览器中启动
 "launchUrl": "1111", //在浏览器中启动的相对URL
 "environmentVariables": { //将环境变量设置为键/值对
 "ASPNETCORE_ENVIRONMENT": "Development"
 }
 }
 }
}

要獲取其它更多屬性的詳細信息,請轉到此連結: http://json.schemastore.org/launchsettings 。

Environment 標籤

透過這個標籤,應用程式當根據目前運行的環境修改MVC視圖的結構。在範例專案中_Layout.cshtml檔案產生的預設程式碼:


<environment names="Development">
 <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" rel="external nofollow" />
 <link rel="stylesheet" href="~/css/site.css" rel="external nofollow" />
 </environment>
 <environment names="Staging,Production">
 <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
  asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" 
  asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
 <link rel="stylesheet" href="~/css/site.min.css" rel="external nofollow" asp-append-version="true" />
 </environment>

在這個範例中,當在開發模式下執行應用程式時,我們使用本地的Bootstrap檔案和自訂css檔案;但是如果在預演和生產環境中運行,我們則使用ASP.NET內容分發網路(CDN)上的檔案副本和經過壓縮過的自訂樣式。透過這種方式,我們可以提高應用程式的效能。

總結

在ASP.NET Core中,開發者可以使用環境變數輕鬆控制應用程式在不同的環境中的行為。使用這些功能,我們完成以下功能:

  • 建立和使用自訂環境;

  • 根據應用程式運行的環境啟用或停用應用程式部分功能;

  • 使用environment 標籤修改目前環境中MVC視圖。

#

以上是ASP.NET Core中新功能--環境變數與啟動設置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn