溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析

發(fā)布時(shí)間:2021-01-27 14:42:28 來源:億速云 閱讀:180 作者:小新 欄目:編程語言

小編給大家分享一下ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

在這一部分內(nèi)容中,我們來討論ASP.NET Core中的一個(gè)新功能:環(huán)境變量和啟動(dòng)設(shè)置,它將開發(fā)過程中的調(diào)試和測試變的更加簡單。我們只需要簡單的修改配置文件,就可以實(shí)現(xiàn)開發(fā)、預(yù)演、生產(chǎn)環(huán)境的切換。

ASPNETCORE_ENVIRONMENT

ASP.NET Core控制環(huán)境切換最核心的東西是“ASPNETCORE_ENVIRONMENT”環(huán)境變量,它直接控制當(dāng)前應(yīng)用程序運(yùn)行的環(huán)境類型。您可以通過在項(xiàng)目上右鍵菜單選擇“屬性”選項(xiàng),然后切換到“調(diào)試”標(biāo)簽來修改此環(huán)境變量。

ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析

此環(huán)境變量框架默認(rèn)提供了三個(gè)值,當(dāng)然您也可以定義其它的值:

Development(開發(fā))
Staging(預(yù)演)
Production(生產(chǎn))

我們?cè)赟tartup.cs文件中,可以使用相應(yīng)的方法來控制應(yīng)用程序的行為。以下是創(chuàng)建示例程序時(shí)Startup.cs文件生成的默認(rèn)代碼:

// 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 類型的變量表示的是當(dāng)前應(yīng)用程序運(yùn)行的環(huán)境,ASP.Net Core提供了四個(gè)擴(kuò)展方法,用于檢測 “ASPNETCORE_ENVIRONMENT”當(dāng)前的值。

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

如果您需要檢查該應(yīng)用程序是否在特定環(huán)境中運(yùn)行,可以使用 env.IsEnvironment("environmentname") ,該方法忽略大小寫(請(qǐng)不要使用 env.EnvironmentName == "Development" 來檢查環(huán)境)。

過上面的代碼,我們可以知道,如果當(dāng)前是開發(fā)環(huán)境,使用UseDeveloperExceptionPage()、UseBrowserLink()方法啟用開發(fā)環(huán)境的錯(cuò)誤頁面和啟用Visual Stuido中的Browser Link功能,這些功能都有利于我們?cè)陂_發(fā)過程中調(diào)試程序;但是在生產(chǎn)環(huán)境中我們不希望啟用這些功能,而是將出錯(cuò)頁面指向路徑“/Home/Error”,給用戶顯示友好的錯(cuò)誤界面。

launchSettings.json文件

ASP.Net Core包含一個(gè)launchSettings.json的新文件,您可以在項(xiàng)目中“Properties”文件夾中找到該文件:

ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析

此文件設(shè)置了Visual Studio可以啟動(dòng)的不同環(huán)境,以下是示例項(xiàng)目中l(wèi)aunchSettings.json文件生成的默認(rèn)代碼:  

{
 "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"
 }
 }
}

在這里,有兩個(gè)配置節(jié)點(diǎn):“IIS Express”、“CoreWebApp”,這兩個(gè)節(jié)點(diǎn),分別對(duì)應(yīng)Visual Stuido的開始調(diào)試按鈕的下拉選項(xiàng):

ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析

launchSettings.json 文件用于設(shè)置在 Visual Stuido 運(yùn)行應(yīng)用程序的環(huán)境。我們也可以添加節(jié)點(diǎn),該節(jié)點(diǎn)名稱會(huì)自動(dòng)添加到 Visual Stuido 調(diào)試按鈕的下拉選項(xiàng)中。

現(xiàn)在我們來詳細(xì)說一下這些屬性的詳細(xì)信息:  

{
 "iisSettings": {
 "windowsAuthentication": false,//啟用Windows身份驗(yàn)證
 "anonymousAuthentication": true,//啟用匿名身份驗(yàn)證
 "iisExpress": {
 "applicationUrl": "http://localhost:22437/",//應(yīng)用啟動(dòng)的Url路徑。
 "sslPort": 44355//啟用SSL的端口
 }
 },
 "profiles": {
 "IIS Express": {
 "commandName": "IISExpress",
 "commandLineArgs": "", //傳遞命令的參數(shù)
 "workingDirectory": "", //設(shè)置命令的工作目錄
 "launchBrowser": true, //是否在瀏覽器中啟動(dòng)
 "launchUrl": "1111", //在瀏覽器中啟動(dòng)的相對(duì)URL
 "environmentVariables": { //將環(huán)境變量設(shè)置為鍵/值對(duì)
 "ASPNETCORE_ENVIRONMENT": "Development"
 }
 }
 }
}

要獲取其它更多屬性的詳細(xì)信息,請(qǐng)轉(zhuǎn)到此鏈接:http://json.schemastore.org/launchsettings 。

Environment 標(biāo)簽

通過這個(gè)標(biāo)簽,應(yīng)用程序當(dāng)根據(jù)當(dāng)前運(yùn)行的環(huán)境修改MVC視圖的結(jié)構(gòu)。在示例項(xiàng)目中_Layout.cshtml文件生成的默認(rèn)代碼:

<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>

在這個(gè)示例中,當(dāng)在開發(fā)模式下運(yùn)行應(yīng)用程序時(shí),我們使用本地的Bootstrap文件和自定義css文件;但是如果在預(yù)演和生產(chǎn)環(huán)境中運(yùn)行,我們則使用ASP.NET內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)上的文件副本和經(jīng)過壓縮過的自定義樣式。通過這種方式,我們可以提高應(yīng)用程序的性能。

總結(jié)

在ASP.NET Core中,開發(fā)者可以使用環(huán)境變量輕而易舉控制應(yīng)用程序在不同的環(huán)境中的行為。使用這些功能,我們完成以下功能:

  • 創(chuàng)建和使用自定義環(huán)境;

  • 根據(jù)應(yīng)用程序運(yùn)行的環(huán)境啟用或禁用應(yīng)用程序部分功能;

  • 使用 environment 標(biāo)簽修改當(dāng)前環(huán)境中MVC視圖。

看完了這篇文章,相信你對(duì)“ASP.NET Core中新功能環(huán)境變量和啟動(dòng)設(shè)置的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI