日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Windows平臺(tái)部署Asp.Net Core應(yīng)用

 新進(jìn)小設(shè)計(jì) 2021-03-30

一. 簡介

Asp.Net Core 部署方式有兩種:依賴框架和獨(dú)立部署。

1. 框架依賴的部署:

顧名思義,依賴框架的部署 (FDD) 依賴目標(biāo)系統(tǒng)上存在共享系統(tǒng)級(jí)版本的 .NET Core。 由于已存在 .NET Core,因此應(yīng)用在 .NET Core 安裝程序間也是可移植的。 應(yīng)用僅包含其自己的代碼和任何位于 .NET Core 庫外的第三方依賴項(xiàng)。 FDD 包含可通過在命令行中使用 dotnet 實(shí)用程序啟動(dòng)的 .dll 文件。 例如,dotnet app.dll 就可以運(yùn)行一個(gè)名為 app 的應(yīng)用程序。

對(duì)于 FDD,僅部署應(yīng)用程序和第三方依賴項(xiàng)。 不需要部署 .NET Core,因?yàn)閼?yīng)用將使用目標(biāo)系統(tǒng)上存在的 .NET Core 版本。 這是定目標(biāo)到 .NET Core 的 .NET Core 和 ASP.NET Core 應(yīng)用程序的默認(rèn)部署模型。

優(yōu)點(diǎn)

① 不需要提前定義 .NET Core 應(yīng)用將在其上運(yùn)行的目標(biāo)操作系統(tǒng)。 因?yàn)闊o論什么操作系統(tǒng),.NET Core 的可執(zhí)行文件和庫都是用通用的 PE 文件格式,因此,無論什么基礎(chǔ)操作系統(tǒng),.NET Core 都可執(zhí)行應(yīng)用。

② 部署包很小。 只需部署應(yīng)用及其依賴項(xiàng),而無需部署 .NET Core 本身。

③ 許多應(yīng)用都可使用相同的 .NET Core 安裝,從而降低了主機(jī)系統(tǒng)上磁盤空間和內(nèi)存使用量。

這種模式是跨平臺(tái)的,只要在對(duì)應(yīng)平臺(tái)裝上runtimes,然后把發(fā)布包做成可移植的,同一個(gè)發(fā)布包就可以跨平臺(tái)了。

缺點(diǎn)

① 僅當(dāng)主機(jī)系統(tǒng)上已安裝你設(shè)為目標(biāo)的 .NET Core 版本或更高版本時(shí),應(yīng)用才能運(yùn)行。

② 如果不了解將來版本,.NET Core 運(yùn)行時(shí)和庫可能發(fā)生更改。 在極少數(shù)情況下,這可能會(huì)更改應(yīng)用的行為。

2. 獨(dú)立部署:

與 FDD 不同,獨(dú)立部署 (SCD) 不依賴目標(biāo)系統(tǒng)上存在的共享組件。 所有組件(包括 .NET Core 庫和 .NET Core 運(yùn)行時(shí))都包含在應(yīng)用程序中,并且獨(dú)立于其他 .NET Core 應(yīng)用程序。 SCD 包括一個(gè)可執(zhí)行文件(如 Windows 平臺(tái)上名為 app 的應(yīng)用程序的 app.exe),它是特定于平臺(tái)的 .NET Core 主機(jī)的重命名版本,還包括一個(gè) .dll 文件(如 app.dll),而它是實(shí)際的應(yīng)用程序。

對(duì)于獨(dú)立部署,可以部署應(yīng)用和所需的第三方依賴項(xiàng)以及生成應(yīng)用所使用的 .NET Core 版本。 創(chuàng)建 SCD 不包括各種平臺(tái)上的 .NET Core 本機(jī)依賴項(xiàng),因此運(yùn)行應(yīng)用前這些依賴項(xiàng)必須已存在。

從 NET Core 2.1 SDK(版本 2.1.300)開始,.NET Core 支持修補(bǔ)程序版本前滾。 在創(chuàng)建獨(dú)立部署時(shí),.NET Core 工具會(huì)自動(dòng)包含你的應(yīng)用程序所指向的 .NET Core 版本的最新服務(wù)的運(yùn)行時(shí)。 (最新服務(wù)的運(yùn)行時(shí)包括安全修補(bǔ)程序和其他 bug 修復(fù)程序。)服務(wù)的運(yùn)行時(shí)不需要存在于你的生成系統(tǒng)上;它會(huì)從 NuGet.org 自動(dòng)下載。

FDD 和 SCD 部署使用單獨(dú)的主機(jī)可執(zhí)行文件,使你可以使用發(fā)布者簽名為 SCD 簽署主機(jī)可執(zhí)行文件。

優(yōu)點(diǎn)

① 可以對(duì)與應(yīng)用一起部署的 .NET Core 版本具有單獨(dú)的控制權(quán)

② 請(qǐng)放心,目標(biāo)系統(tǒng)可以運(yùn)行你的 .NET Core 應(yīng)用,因?yàn)槟闾峁┑氖菓?yīng)用將在其上運(yùn)行的 .NET Core 版本

缺點(diǎn)

① 由于 .NET Core 包含在部署包中,因此必須提前選擇為其生成部署包的目標(biāo)平臺(tái)

② 部署包相對(duì)較大,因?yàn)樾枰獙?.NET Core 和應(yīng)用及其第三方依賴項(xiàng)包括在內(nèi)。

他不能跨平臺(tái),每個(gè)包都有對(duì)應(yīng)的運(yùn)行時(shí),所以一份代碼只能在對(duì)應(yīng)的平臺(tái)使用。

3. 部署的手段:文件系統(tǒng)、Web部署、FTP。

 

二. 文件系統(tǒng)發(fā)布至IIS

文件系統(tǒng)發(fā)布就是最傳統(tǒng)的一種發(fā)布方式,利用開發(fā)工具生成一個(gè)發(fā)布包,然后部署到IIS上。

服務(wù)器上需要安裝.Net運(yùn)行時(shí)和支持Module,下載地址:https://dotnet.microsoft.com/download/dotnet-core/2.2

1. 生成發(fā)布包:

2. 部署到IIS:

和普通的Asp.Net Web項(xiàng)目相同,但需要把進(jìn)程池改成 " 無托管代碼 "。

三. Web部署發(fā)布至IIS

1. 前提:

安裝 dotnet-hosting(這里的版本為2.2.4,該安裝包 包括:dotnet runtime 2.2.4 和 dotnet hosting)和 Web Deploy v3.6。

PS:runtime是dotnet程序的運(yùn)行時(shí),hosting是IIS支持dotnet core程序必備的模塊(安裝完后,IIS模塊中會(huì)有AspNetCoreModuleV2模塊),WebDeploy v3.6 是服務(wù)器端支持“web部署”方式必備的程序,而安裝WebDeploy微軟推薦通過“web platform”這個(gè)軟件來安裝(類似于360軟件管家的性質(zhì))。

特別注意: 如果僅僅是本地運(yùn)行,安裝runtimes就行了,如果是服務(wù)器上部署,要安裝dotnet-hosting,里面已經(jīng)包含了對(duì)應(yīng)版本的runtimes。

下載地址:https://dotnet.microsoft.com/download/dotnet-core

2. 必備環(huán)境的安裝

(一).  dotnet-hosting安裝

(1). 安裝dotnet-hosting,去【https://dotnet.microsoft.com/download/dotnet-core/2.2】地址,下載dotnet-hosting程序。

(2). 在WinServer2016上安裝【dotnet-hosting-2.2.4-win.exe】,安裝過程如下圖:

(3). 安裝完畢后,cmd命令【dotnet --list-runtimes】查看版本為 2.2.4 。在IIS模塊中查看有 AspNetCoreModuleV2.

(二). Web Deploy的安裝

(1). 先安裝【W(wǎng)eb PlatForm】,通過 Web PlatForm 安裝 Web Deploy,下載地址:Https://www.microsoft.com/web/downloads/platform.aspx

PS:當(dāng)然也可以直接安裝Web Deploy,下載地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=43717

(2). 在里面搜索 web deploy,進(jìn)行 安裝:

3. 發(fā)布步驟

(1). 選擇Web的方式進(jìn)行發(fā)布,輸入服務(wù)器地址,賬號(hào)密碼、項(xiàng)目名稱、項(xiàng)目地址,如下圖:

(2). 點(diǎn)擊,發(fā)布進(jìn)行發(fā)布,如下圖:發(fā)布成功。

補(bǔ)充:此處可能第一次鏈接上不上去,發(fā)布失敗,這個(gè)時(shí)候,去服務(wù)器上把這個(gè)項(xiàng)目關(guān)閉,然后進(jìn)行發(fā)布,發(fā)布成功后,在把該項(xiàng)目打開,以后再發(fā)布就正常了。

假設(shè)還有問題,在發(fā)布文件夾下新建要給 App_Offline.htm即可,用于關(guān)閉IIS。

 

四. FTP發(fā)布至IIS

分析:FTP發(fā)布不同于上述Web部署的模式,服務(wù)器端不需要安裝任何額外的插件,僅需要給服務(wù)器添加一個(gè)FTP發(fā)布即可。

1. 服務(wù)端添加FTP發(fā)布

(1). 選中IIS中的項(xiàng)目,添加FTP發(fā)布,步驟如下圖:

添加完畢,點(diǎn)擊綁定,發(fā)現(xiàn)里面多了一個(gè)FTP的21端口的地址。

 

 注:如果是阿里云或者其它云服務(wù)器,這里使用項(xiàng)目端口8015和FTP的21端口,需要在服務(wù)器的管理端配置一些,然后還要在服務(wù)器的防火墻中配置一下入站,部分操作如下圖:

 

 

(2) 在VS中進(jìn)行發(fā)布,選擇FTP的模式發(fā)布,配置 服務(wù)器地址、登錄賬號(hào)、密碼、項(xiàng)目地址,點(diǎn)擊發(fā)布即可。

 

 

五. Windows服務(wù)的形式發(fā)布

很多情況下,我們不使用IIS,而是將Asp.Net Core程序發(fā)布成Windows服務(wù)的形式,步驟如下:

1.  通過Nuget安裝程序集【 Microsoft.AspNetCore.Hosting.WindowsServices 】

  1. 通過右鍵項(xiàng)目,通過編輯項(xiàng)目的 xxx.csproj文件編輯項(xiàng)目的RID,RID的編輯規(guī)則如下圖:

該項(xiàng)目發(fā)布在win10下,如下圖

  1. 在Main函數(shù)中將Run改成RunAsService,同時(shí)可以通過UseUrls來配置訪問地址,然后對(duì)該項(xiàng)目進(jìn)行發(fā)布。
  1. 利用sc相關(guān)的windows服務(wù)的指令進(jìn)行服務(wù)的創(chuàng)建、開啟、查詢、停止、刪除。(指令需要以管理員身份運(yùn)行)

(1) 創(chuàng)建服務(wù):sc create MyService binPath= "c:\svc\AspNetCoreServiceSample.ex"

(2) 啟動(dòng)服務(wù):sc start MyService

(3) 檢查服務(wù)狀態(tài):sc query MyService

(4) 停止服務(wù):sc stop MyService

(5) 卸載服務(wù):sc delete MyService  (刪除前必須先停止服務(wù))

 


來源:https://www.cnblogs.com/yaopengfei/p/10733772.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多