ASP.NET Core中使用多環(huán)境
ASP.NET Core 支持在多個環(huán)境中管理應用程序,如開發(fā)(Development),預演(Staging)和生產(Production)。環(huán)境變量用來指示應用程序正在運行的環(huán)境,允許應用程序適當地配置。
1.環(huán)境變量
ASP.NET Core 引用一個特定的環(huán)境變量 ASPNETCORE_ENVIRONMENT 來描述應用程序當前運行的環(huán)境。這個變量可以被設置任何值,但是有三個值被約定使用:Development(開發(fā)),Staging(預演)和Production(生產)。
當前環(huán)境變量設置可以通過編程方式從應用程序中檢測到。還可以基于當前的應用程序環(huán)境在view中使用 Environment tag helper 來包含某些部分。指定的環(huán)境變量名稱不區(qū)分大小寫。
Development
開發(fā)環(huán)境。可以在vs中設置,右擊項目,點擊屬性:
當修改該項目創(chuàng)建的默認設置后,會更改launchSettings.json文件。這個文件對于 vs 中每個用來啟動應用程序的配置文件都包含特定的設置,包括應該使用的任何環(huán)境變量。
你也可以為應用程序配置多個不同的啟動配置。
Staging
Staging 環(huán)境是用于部署到生產環(huán)境前進行最后測試的預生產環(huán)境。理論上,它的物理特征應該時生產環(huán)境的真實寫照。
Production
Production 環(huán)境是應用程序運行的環(huán)境。這個環(huán)境應該被配置為最大限度提高安全性,性能和應用程序的健壯性。還需要其他設置:
啟動緩存
客戶端資源打包
使用正式錯誤頁面
啟用生產日志和監(jiān)控
等
2.運行時確定環(huán)境
IHostingEnvironment服務為工作環(huán)境提供了核心抽象。該服務由ASP.NET 宿主層提供,并且能夠通過DI 注入到啟動類中。在VS 的ASP.NET Core 網站模板中使用這種方式加載特定的環(huán)境配置文件(如果存在的話),可以根據環(huán)境設置不同的配置。
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"檢查運行環(huán)境。
在開發(fā)環(huán)境中,使用UseDeveloperExceptionPage()、UseBrowserLink()方法啟用開發(fā)環(huán)境的錯誤頁面和啟用Visual Stuido中的Browser Link功能,這些功能都有利于我們在開發(fā)過程中調試程序;但是在生產環(huán)境中我們不希望啟用這些功能,而是將出錯頁面指向路徑“/Home/Error”,給用戶顯示友好的錯誤界面。
當在開發(fā)模式下運行應用程序時,我們使用本地的Bootstrap文件和自定義css文件;但是如果在預演和生產環(huán)境中運行,我們則使用ASP.NET內容分發(fā)網絡(CDN)上的文件副本和經過壓縮過的自定義樣式。我們可以使用environment標簽匹配環(huá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" rel="external nofollow" 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>
3.啟動公約
ASP.NET Core 支持一種基于約定的方法來根據當前環(huán)境配置應用程序的啟動。
我們知道在ASP.NET Core啟動后,Startup類來應道應用程序。如果命名類為Startup{EnvironmentName},當在對應環(huán)境下啟動后會使用這個類。
同樣如果在Startup類中Configure和ConfigureServices方法也支持這種約定。
到此這篇關于ASP.NET Core中使用多環(huán)境的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
ASP.NET WebForm中<%=%>與<%#%>的區(qū)別
這篇文章主要介紹了ASP.NET WebForm中<%=%>與<%#%>的區(qū)別,需要的朋友可以參考下2015-01-01ASP.Net MVC_DotNetZip簡單使用方法,解決文件壓縮的問題
下面小編就為大家?guī)硪黄狝SP.Net MVC_DotNetZip簡單使用方法,解決文件壓縮的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06Asp.net使用HttpModule壓縮并刪除空白Html請求的實現代碼
當我們壓縮我的Response后再傳到Client端時,可以明顯節(jié)省寬帶. 提升Site的性能. 現在的瀏覽器大部分都支持Gzip,Deflate壓縮2011-11-11DataView.RowFilter的使用(包括in,like等SQL中的操作符)
這篇blog轉自C# examples,對DataView.RowFilter做了詳細介紹,能像SQL中使用in,like等操作符一樣進行過濾查詢,并附有實例,使用方便。2011-07-07ASP.NET Core自定義本地化教程之從文本文件讀取本地化字符串
使用 ASP.NET Core 創(chuàng)建多語言網站,可讓網站擁有更多受眾。下面這篇文章主要給大家介紹了關于ASP.NET Core自定義本地化教程之從文本文件讀取本地化字符串的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-09-09