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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net core 环境(Development、Staging 、Production)

發布時間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net core 环境(Development、Staging 、Production) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.在asp.net core中使用多個環境

  ASP.NET Core 配置是基于運行時環境, 使用環境變量。ASP.NET Core 在應用啟動時讀取環境變量ASPNETCORE_ENVIRONMENT,并將該值存儲在 IHostingEnvironment.EnvironmentName 中。ASPNETCORE_ENVIRONMENT 可設置為任意值,但框架支持三個值:Development、Staging 和 Production。 如果發布項目未設置 ASPNETCORE_ENVIRONMENT,則默認為 Production (本機vs中項目Properties\launchSettings.json中environmentVariables默認設置的是Development,如果禁用environmentVariables,那默認則為Production)。

  下面是Startup. Configure中的默認實現,本機默認配置的是Development環境。

1.1 Development 模式

???????? 開發環境可以啟用不應該在生產中公開的功能, 例如ASP.NET Core 模板在開發環境中啟用了開發人員異常頁(app.UseDeveloperExceptionPage())。當出現異常時,顯示錯誤頁信息如下圖所示:

  本地計算機開發環境可以在項目的 Properties\launchSettings.json 文件中設置。?在 launchSettings.json 中設置的環境值替代在系統環境中設置的值。新建的mvc項目默認配置如下:

 launchSettings.json 中的?applicationUrl?屬性可指定服務器 URL 的列表。?在列表中的 URL 之間使用分號。注意:launchSettings.json只用于本機在vs 中開發使用,在開發中可以選擇三種之中任意一種的環境模式。當項目發布后,發布后(iis做反向代理),發布的文件中并不會有launchSettings.json文件。

  如果不用vs來啟動應用程序,使用 dotnet run 命令來 啟動應用程序時,使用具有 "commandName": "Project" 的第一個配置文件。 commandName 的值指定要啟動的 Web 服務器。 commandName 可為以下任一項:IIS Express、IIS、Project(啟動 Kestrel 的項目)。

  當使用dotnet run 啟動應用時:1會讀取?launchSettings.json中的environmentVariables;2是會顯示打印出host 環境。

?

  1.2 ?Production? 模式

? ? ?   ?Production 環境應配置為最大限度地提高安全性、性能和應用可靠性。?不同于開發環境的一些通用設置包括:

    (1) 緩存

    (2) 客戶端資源被捆綁和縮小,并可能從 CDN (網絡分發)提供。

    (3) 已禁用診斷錯誤頁。

    (4) 已啟用友好錯誤頁。

    (5) 已啟用生產記錄和監視。

?

二. 環境設置

?  在項目中為測試設置特定環境通常很有用。?如果未設置環境,默認值為?Production,這會禁用大多數調試功能。設置環境的方法取決于操作系統。例如將asp.net core razor項目發布后,部署到IIS上,訪問OtherPages/page1時出現異常。此時默認是Production?環境變量,會顯示了error頁面信息, 表示已啟用友好錯誤頁。如下圖所示 :

  

  2.1??修改環境變量

    上面講到,設置環境的方法取決于操作系統:有Azure 應用服務、Windows、macOS、Linux等。每種操作系統上設置環境變量的方法不同,這里不在介紹,具體參考文檔。這里就先只介紹在Windows操作系統上以iis做反向代理的配置環境變量。

    在Windows操作系統上配置環境變量方法有很多。當發布后,文件中有一個web.config。這里就介紹下在web.config中設置?ASPNETCORE_ENVIRONMENT?環境變量。使用 web.config 設置?ASPNETCORE_ENVIRONMENT?環境變量后,它的值會替代系統級設置。

<aspNetCore processPath="dotnet" arguments=".\MyNetCoreStudy.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess"> ? ?<environmentVariables><environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /></environmentVariables></aspNetCore>

? ? ? ? ?此時iis上該項目就是Development開發環境了,再次訪問OtherPages/page1時出現異常,此時會捕獲同步和異步系統。管道中的異常實例,并生成HTML錯誤響應。詳細異常信息如下圖所示:

  

三. 發布到IIS上步驟

  下面簡單講下發布到IIS上的步驟實現:

    (1) 安裝好IIS,網上很多參考資料。

    (2)下載dotnet-hosting-2.2.1-win.exe 用于在iis上處理對web服務器的請求。下載地址介紹:

      https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?view=aspnetcore-2.2#install-the-net-core-hosting-bundle

      在里面找到“當前 .NET Core 托管捆綁包安裝程序(直接下載)”這里進去可以下載到當前版本(aspnetcore-2.2),安裝后,在iis模塊中能看到AspNetCoreModuleV2。對應發布項目中web.config的<handlers>處理。

<handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /></handlers>

    (3) 在vs中右擊項目發布,選擇"iis Ftp" 點擊發布。 選擇“文件系統”, 目標位置可以選擇當前電腦位置如: D:\DonetCoreStudy\IIS

    ?(4) 在iis這邊,添加網站      

    (5) 在應用程序池中對項目(MyNetCoreStudy)? 選擇無托管代碼。

     這樣發布到iis上就成功了。

?    

四. 基于環境的 Startup 類

?  最后在講下Startup 類約定。當 ASP.NET Core 應用啟動時,會啟動Startup類。 應用程序可以為不同的環境,單獨定義 Startup 類。可以定義例如: StartupDevelopment類、StartupProduction類,Startup類。當程序運行時會選擇相應的 Startup 類。 程序會優先考慮名稱后綴與當前環境相匹配的類。如果是Developmen環境則程序進入StartupDevelopment類,如果是Production環境則程序進入StartupProduction類。如果找不到匹配的 Startup{EnvironmentName},就會使用 Startup 類。

  基于環境的 Startup 類實現代碼如下:

原文地址:https://www.cnblogs.com/MrHSR/p/10276650.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com


總結

以上是生活随笔為你收集整理的asp.net core 环境(Development、Staging 、Production)的全部內容,希望文章能夠幫你解決所遇到的問題。

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