對於 FDD,僅部署應用程序和第三方依賴項。 不須要部署 .NET Core,由於應用將使用目標系統上存在的 .NET Core 版本。 這是定目標到 .NET Core 的 .NET Core 和 ASP.NET Core 應用程序的默認部署模型。html
優勢web
① 不須要提早定義 .NET Core 應用將在其上運行的目標操做系統。 由於不管什麼操做系統,.NET Core 的可執行文件和庫都是用通用的 PE 文件格式,所以,不管什麼基礎操做系統,.NET Core 均可執行應用。windows
② 部署包很小。 只需部署應用及其依賴項,而無需部署 .NET Core 自己。安全
③ 許多應用均可使用相同的 .NET Core 安裝,從而下降了主機系統上磁盤空間和內存使用量。服務器
這種模式是跨平臺的,只要在對應平臺裝上runtimes,而後把發佈包作成可移植的,同一個發佈包就能夠跨平臺了。app
缺點框架
① 僅當主機系統上已安裝你設爲目標的 .NET Core 版本或更高版本時,應用才能運行。函數
② 若是不瞭解未來版本,.NET Core 運行時和庫可能發生更改。 在極少數狀況下,這可能會更改應用的行爲。工具
對於獨立部署,能夠部署應用和所需的第三方依賴項以及生成應用所使用的 .NET Core 版本。 建立 SCD 不包括各類平臺上的 .NET Core 本機依賴項,所以運行應用前這些依賴項必須已存在。開發工具
從 NET Core 2.1 SDK(版本 2.1.300)開始,.NET Core 支持修補程序版本前滾。 在建立獨立部署時,.NET Core 工具會自動包含你的應用程序所指向的 .NET Core 版本的最新服務的運行時。 (最新服務的運行時包括安全修補程序和其餘 bug 修復程序。)服務的運行時不須要存在於你的生成系統上;它會從 NuGet.org 自動下載。
FDD 和 SCD 部署使用單獨的主機可執行文件,使你可使用發佈者簽名爲 SCD 簽署主機可執行文件。
優勢
① 能夠對與應用一塊兒部署的 .NET Core 版本具備單獨的控制權
② 請放心,目標系統能夠運行你的 .NET Core 應用,由於你提供的是應用將在其上運行的 .NET Core 版本
缺點
① 因爲 .NET Core 包含在部署包中,所以必須提早選擇爲其生成部署包的目標平臺
② 部署包相對較大,由於須要將 .NET Core 和應用及其第三方依賴項包括在內。
他不能跨平臺,每一個包都有對應的運行時,因此一份代碼只能在對應的平臺使用。
3. 部署的手段:文件系統、Web部署、FTP。
服務器上須要安裝.Net運行時和支持Module,下載地址:https://dotnet.microsoft.com/download/dotnet-core/2.2
PS:runtime是dotnet程序的運行時,hosting是IIS支持dotnet core程序必備的模塊(安裝完後,IIS模塊中會有AspNetCoreModuleV2模塊),WebDeploy v3.6 是服務器端支持「web部署」方式必備的程序,而安裝WebDeploy微軟推薦經過「web platform」這個軟件來安裝(相似於360軟件管家的性質)。
特別注意: 若是僅僅是本地運行,安裝runtimes就好了,若是是服務器上部署,要安裝dotnet-hosting,裏面已經包含了對應版本的runtimes。
下載地址:https://dotnet.microsoft.com/download/dotnet-core
(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.
PS:固然也能夠直接安裝Web Deploy,下載地址: https://www.microsoft.com/zh-cn/download/details.aspx?id=43717
(2). 在裏面搜索 web deploy,進行 安裝:
(2). 點擊,發佈進行發佈,以下圖:發佈成功。
補充:此處可能第一次連接上不上去,發佈失敗,這個時候,去服務器上把這個項目關閉,而後進行發佈,發佈成功後,在把該項目打開,之後再發布就正常了。
假設還有問題,在發佈文件夾下新建要給 App_Offline.htm便可,用於關閉IIS。
1. 服務端添加FTP發佈
(1). 選中IIS中的項目,添加FTP發佈,步驟以下圖:
添加完畢,點擊綁定,發現裏面多了一個FTP的21端口的地址。
注:若是是阿里雲或者其它雲服務器,這裏使用項目端口8015和FTP的21端口,須要在服務器的管理端配置一些,而後還要在服務器的防火牆中配置一下入站,部分操做以下圖:
(2) 在VS中進行發佈,選擇FTP的模式發佈,配置 服務器地址、登陸帳號、密碼、項目地址,點擊發布便可。
五. Windows服務的形式發佈
不少狀況下,咱們不使用IIS,而是將Asp.Net Core程序發佈成Windows服務的形式,步驟以下:
1. 經過Nuget安裝程序集【 Microsoft.AspNetCore.Hosting.WindowsServices 】
該項目發佈在win10下,以下圖
(1) 建立服務:sc create MyService binPath= "c:\svc\AspNetCoreServiceSample.ex"
(2) 啓動服務:sc start MyService
(3) 檢查服務狀態:sc query MyService
(4) 中止服務:sc stop MyService
(5) 卸載服務:sc delete MyService (刪除前必須先中止服務)
來源:https://www.cnblogs.com/yaopengfei/p/10733772.html