日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Working with Multiple Environments(使用多个环境)

發布時間:2024/4/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Working with Multiple Environments(使用多个环境) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Working with Multiple Environments

? ? ? ? ASP.NET 5提高了跨多環境控制應用程序行為的支持。比如:開發,過度,生產。環境變量用來表明應用程序運行的環境,允許適當配置應用程序。

?In ?this ? article(在這篇文章中主要介紹的章節如下):

? Development, Staging, Production

? Determining the environment at runtime

? Startup conventions Browse or download samples on GitHub.

Development, Staging, Production

? ? ? ? ASP.NET 5引用特定的環境變量。ASPNET_ENV(or Hosting:Environment)描述了當前正在運行的應用程序的環境。這個變量可以設置任何值,但是按照慣例使用三個值,分別為:Development, Staging, and Production。您將發現這些值用于ASP.NET 5提高那個的樣品和模板中。

? ? ? ? 當前環境設置能從ASP.NET 5檢測到所使用的編程方式,此外,ASP.NET MVC6介紹了Environment Tag Helper,Environment Tag Helper允許MVC視圖包括基于當前應用程序環境的某些部分。

Development

? ? ? ?下面是開發應用程序時使用的環境。用Visual Studio 2015時,在項目的調試配置文件中指定環境設置,比如IIS Express,如下圖所示:

? ? ? ? ? ?

? ? ? ? ? ?當修改已創建項目的默認設置,更改在Properties文件夾中的launchSettings.json中被持久化, ? 包括用到的任何環境變量。在Web配置文件改變?ASPNET_ENV (or Hosting:Environment) 變量為Staging之后,launchSettings.json文件如下所示:

? ? ? ? ?

{"iisSettings": { "windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": { "applicationUrl": "http://localhost:40088/", "sslPort": 0 } }, "profiles": {"IIS Express": { "commandName": "IISExpress","launchBrowser": true, "environmentVariables": {"ASPNET_ENV": "Development" } }, "web": { "commandName": "web","environmentVariables": {"Hosting:Environment": "Staging"} } } }

   ? ?Staging環境是預生產環境,在生產環境之前用來最終測試,理想的情況是,它的物理特性能反應項目產品 ,以至于任何問題在Staging環境中第一次出現時就能解決而不影響客戶的使用。

Production(產品)

? ? ? ? ? 應用程序運行并被用戶使用的環境是Procuction環境。這個環境應該被配置最大的安全性,性能和應用程序的健壯性,production環境中可能有的一些公共設置和開發時有所不同,包括以下。

? ? ? ? Turn on caching

? ? ? ??Ensure all client-side resources are bundled, mini?ed, and potentially served from a CDN?

? ? ? ??Turn off diagnostic ErrorPages

? ? ? ? Turn on friendly error pages
? ? ? ? Enable production logging and monitoring (for example, Application Insights)

?

? ? ? ? 這不是一個完整的列表,最好避免在應用程序的很多部分進行分散環境檢查。相反,推薦的方法是盡量在應用程序的Startup類(cs)中執行這種檢查。

Determining the environment at runtime(在運行時決定使用環境)

? ? ? 為了正常工作,IHostingEnvironment服務提供了帶有環境的核心抽象概念,ASP.NET hosting層提供了該服務并且通過依賴注入將這個服務注入到啟動邏輯中。Visual Studio中的ASP.NET 5 網站模板用這種方法加載特定環境的配置文件(if present),并自定義應用程序的錯誤處理設置。在這2種情況下,目前指定環境通過調用 EnvironmentName 或者IsEnvironment 將IHostingEnvironment 的實例傳遞給適當的方法來實現這種行為的。

? ? ? ? ?如果需要檢查在特定的環境中,應用程序是否運行,用env.IsEnvironment("environmentname") ,它能正確地忽略大小寫。

? ? ? ? ?例如,可以使用以下代碼在Con?gure方法中設置環境的具體錯誤操作:

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

   如果應用程序在開發環境中正常運行,它可能BrowserLink ,開發特定的錯誤頁,否則,配置一個標準的錯誤頁作為對任何未處理異常的響應顯示出來。

Startup conventions(啟動約定)

????? ASP.NET 5支持基于協議的方法在當前環境中配置應用程序的啟動。也可以根據環境通過編程的方式控制應用程序的執行,并允許創建和管理自己的協議。

???? 當ASP.NET應用程序啟動時,啟動類啟動應用程序,加載配置設置等(到ASP.NET? startup了解更多)。然而,如果存在名為Startup{EnvironmentName}的類,(比如StartupDevelopment),ASPNET_ENV環境變量和這個名相匹配,使用啟動類。開發時可以配置啟動項,當應用程序在Production的環境中運行,將使用一個單獨的StartupProduction。反之亦然。

?? 當應用程序在Development環境中被設置成運行,以下示例項目中的StartupDevelopment將運行。

?? 在開發期間,運行應用程序,顯示歡迎屏幕,示例還包括一個StartupStaging類:

??? 當ASPNET_ENV設置成Staging,并且應用程序運行,使用StartupStaging類,應用程序將顯示字符串聲明,并運行在staging?環境中。當環境沒有設置成Development或者是Staging時,會運行應用程序默認的Startup類。(據推測,設置為Production,而不是僅限于這三個選項。還要注意,如果沒有環境設置,運行默認啟動)。

???? 除了在當前環境下使用完全獨立的Startup類,也可以重新在Startup類中配置應用。Configure[Environment]()?和 Configure[Environment]Services()中的Configure()和ConfigureServices()方法支持特定環境的版本,和Startup類本身類似。如果定義了ConfigureDevelopment方法,當環境設置為development時,它將被調用,而不是調用Configure(),同樣,在同樣的環境中ConfigureDevelopmentServices()方法將被調用,而不是ConfigureServices()方法。

using Microsoft.AspNet.Builder;
namespace Environments
{
public class StartupDevelopment
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
}

  

using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;

namespace Environments
{
public class StartupStaging
{
public void Configure(IApplicationBuilder app)
{
app.Run(async context =>
{
context.Response.ContentType = "text/plain";
await context.Response.WriteAsync("Staging environment.");
});
}
}
}

   總結

????? ASP.NET 5提供類很多特性和協議,允許開發人員在不同的環境中控制應用程序如何執行。當發布應用程序從development到staging到production。環境變量設置適當的環境,允許對應用程序調試,測試或者使用進行優化。

???? 更多資源

??? Con?guration

?

轉載于:https://www.cnblogs.com/wmj01/p/5226977.html

總結

以上是生活随笔為你收集整理的Working with Multiple Environments(使用多个环境)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。