日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

ASP.NET?Core中使用多環境_實用技巧

作者:Ruby_Lu ? 更新時間: 2022-06-13 編程語言

ASP.NET Core 支持在多個環境中管理應用程序,如開發(Development),預演(Staging)和生產(Production)。環境變量用來指示應用程序正在運行的環境,允許應用程序適當地配置。

1.環境變量

ASP.NET Core 引用一個特定的環境變量 ASPNETCORE_ENVIRONMENT 來描述應用程序當前運行的環境。這個變量可以被設置任何值,但是有三個值被約定使用:Development(開發),Staging(預演)和Production(生產)。

當前環境變量設置可以通過編程方式從應用程序中檢測到。還可以基于當前的應用程序環境在view中使用 Environment tag helper 來包含某些部分。指定的環境變量名稱不區分大小寫。

Development

開發環境。可以在vs中設置,右擊項目,點擊屬性:

?當修改該項目創建的默認設置后,會更改launchSettings.json文件。這個文件對于 vs 中每個用來啟動應用程序的配置文件都包含特定的設置,包括應該使用的任何環境變量。

你也可以為應用程序配置多個不同的啟動配置。

Staging

Staging 環境是用于部署到生產環境前進行最后測試的預生產環境。理論上,它的物理特征應該時生產環境的真實寫照。

Production

Production 環境是應用程序運行的環境。這個環境應該被配置為最大限度提高安全性,性能和應用程序的健壯性。還需要其他設置:

啟動緩存

客戶端資源打包

使用正式錯誤頁面

啟用生產日志和監控

2.運行時確定環境

IHostingEnvironment服務為工作環境提供了核心抽象。該服務由ASP.NET 宿主層提供,并且能夠通過DI 注入到啟動類中。在VS 的ASP.NET Core 網站模板中使用這種方式加載特定的環境配置文件(如果存在的話),可以根據環境設置不同的配置。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {

            if (env.IsDevelopment())
            {
          app.UseDeveloperExceptionPage();
          app.UseDatabaseErrorPage();
          app.UseBrowserLink();


            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }


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

除了使用env.IsDevelopment(),也可以使用env.IsEnvironment("Development")或env.EnvironmentName == "Development"檢查運行環境。

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

當在開發模式下運行應用程序時,我們使用本地的Bootstrap文件和自定義css文件;但是如果在預演和生產環境中運行,我們則使用ASP.NET內容分發網絡(CDN)上的文件副本和經過壓縮過的自定義樣式。我們可以使用environment標簽匹配環境:

<environment names="Development">

 <link  href="~/lib/bootstrap/dist/css/bootstrap.css"    />

 <link  href="~/css/site.css"    />

 </environment>

 <environment names="Staging,Production">

 <link    

  asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"   

  asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />

 <link  href="~/css/site.min.css"    asp-append-version="true" />

 </environment>

3.啟動公約

ASP.NET Core 支持一種基于約定的方法來根據當前環境配置應用程序的啟動。

我們知道在ASP.NET Core啟動后,Startup類來應道應用程序。如果命名類為Startup{EnvironmentName},當在對應環境下啟動后會使用這個類。

同樣如果在Startup類中Configure和ConfigureServices方法也支持這種約定。

原文鏈接:https://www.cnblogs.com/afei-24/p/10908630.html

欄目分類
最近更新