網(wǎng)站首頁 編程語言 正文
ASP.NET Core 支持在多個環(huán)境中管理應(yīng)用程序,如開發(fā)(Development),預(yù)演(Staging)和生產(chǎn)(Production)。環(huán)境變量用來指示應(yīng)用程序正在運行的環(huán)境,允許應(yīng)用程序適當(dāng)?shù)嘏渲谩?/p>
1.環(huán)境變量
ASP.NET Core 引用一個特定的環(huán)境變量 ASPNETCORE_ENVIRONMENT 來描述應(yīng)用程序當(dāng)前運行的環(huán)境。這個變量可以被設(shè)置任何值,但是有三個值被約定使用:Development(開發(fā)),Staging(預(yù)演)和Production(生產(chǎn))。
當(dāng)前環(huán)境變量設(shè)置可以通過編程方式從應(yīng)用程序中檢測到。還可以基于當(dāng)前的應(yīng)用程序環(huán)境在view中使用 Environment tag helper 來包含某些部分。指定的環(huán)境變量名稱不區(qū)分大小寫。
Development
開發(fā)環(huán)境。可以在vs中設(shè)置,右擊項目,點擊屬性:
?當(dāng)修改該項目創(chuàng)建的默認設(shè)置后,會更改launchSettings.json文件。這個文件對于 vs 中每個用來啟動應(yīng)用程序的配置文件都包含特定的設(shè)置,包括應(yīng)該使用的任何環(huán)境變量。
你也可以為應(yīng)用程序配置多個不同的啟動配置。
Staging
Staging 環(huán)境是用于部署到生產(chǎn)環(huán)境前進行最后測試的預(yù)生產(chǎn)環(huán)境。理論上,它的物理特征應(yīng)該時生產(chǎn)環(huán)境的真實寫照。
Production
Production 環(huán)境是應(yīng)用程序運行的環(huán)境。這個環(huán)境應(yīng)該被配置為最大限度提高安全性,性能和應(yīng)用程序的健壯性。還需要其他設(shè)置:
啟動緩存
客戶端資源打包
使用正式錯誤頁面
啟用生產(chǎn)日志和監(jiān)控
等
2.運行時確定環(huán)境
IHostingEnvironment服務(wù)為工作環(huán)境提供了核心抽象。該服務(wù)由ASP.NET 宿主層提供,并且能夠通過DI 注入到啟動類中。在VS 的ASP.NET Core 網(wǎng)站模板中使用這種方式加載特定的環(huán)境配置文件(如果存在的話),可以根據(jù)環(huán)境設(shè)置不同的配置。
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ā)過程中調(diào)試程序;但是在生產(chǎn)環(huán)境中我們不希望啟用這些功能,而是將出錯頁面指向路徑“/Home/Error”,給用戶顯示友好的錯誤界面。
當(dāng)在開發(fā)模式下運行應(yīng)用程序時,我們使用本地的Bootstrap文件和自定義css文件;但是如果在預(yù)演和生產(chǎn)環(huán)境中運行,我們則使用ASP.NET內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)上的文件副本和經(jīng)過壓縮過的自定義樣式。我們可以使用environment標簽匹配環(huán)境:
<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 支持一種基于約定的方法來根據(jù)當(dāng)前環(huán)境配置應(yīng)用程序的啟動。
我們知道在ASP.NET Core啟動后,Startup類來應(yīng)道應(yīng)用程序。如果命名類為Startup{EnvironmentName},當(dāng)在對應(yīng)環(huán)境下啟動后會使用這個類。
同樣如果在Startup類中Configure和ConfigureServices方法也支持這種約定。
原文鏈接:https://www.cnblogs.com/afei-24/p/10908630.html
相關(guān)推薦
- 2022-04-11 Python利用正則表達式從字符串提取數(shù)字_python
- 2022-06-07 Python利用capstone實現(xiàn)反匯編_python
- 2022-06-19 基于Python實現(xiàn)音樂播放器的實現(xiàn)示例代碼_python
- 2022-09-06 C#任務(wù)并行Parellel.For和Parallel.ForEach_C#教程
- 2022-03-17 Android跳轉(zhuǎn)三方應(yīng)用實例代碼_Android
- 2022-04-24 淺析GBase8s?唯一索引與非唯一索引問題_數(shù)據(jù)庫其它
- 2022-06-08 SpringBoot jar包瘦身操作 -Dloader.path使用
- 2022-12-04 Flask帶參URL傳值的實現(xiàn)方法_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支