“don't worry”,部署ASP.NET Core應用可以和原來部署.NET Framework的ASP.NET應用一樣的簡單,還是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下麵主要介紹在windows平臺下兩種常用部署方式: 方式一:Kestrel部署Web應用 ...
“don't worry”,部署ASP.NET Core應用可以和原來部署.NET Framework的ASP.NET應用一樣的簡單,還是“熟悉的配方,熟悉的味道”,甚至提供了更加便捷的Kestrel部署方式,下麵主要介紹在windows平臺下兩種常用部署方式:
- 方式一:Kestrel部署Web應用
- 方式二:IIS部署Web應用
下載ASP.NET Core運行時
在部署應用之前,ASP.NET Core運行時的具備是運行Web應用的基本條件,本文的部署以ASP.NET Core3.1的運行時版本為例,下載地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/3.1,在界面上選擇安裝包時,保險起見建議選擇Hosting Bundle(托管捆綁包),該包除了自身ASP.NET Core的運行時還包括了.NET 運行時和 IIS 支持。
請在文件下載後拷貝到對應的伺服器進行安裝。
為了確認安裝是否成功,我們可以使用.NET CLI命令來驗證,打開命令行視窗輸入:dotnet --info,點擊回車後如果出現如下界面則表示運行時安裝成功。
1.方式一:Kestrel部署Web應用
1.1.配置Kestrel伺服器監聽的URL
Kestrel是ASP.NET Core內置的一個性能強大、功能豐富、跨平臺的Web伺服器,所以IIS伺服器不再是我們部署應用的唯一選擇。對於內置了Kestrel伺服器的ASP.NET Core站點,在編譯發佈成功後,將發佈目錄直接拷貝到伺服器上,在打開目錄的exe文件就可以實現運行。
由於Kestrel伺服器而言它預設監聽綁定的地址是http://localhost:5000,這是一個本地訪問的地址,所以如果我們要遠程訪問部署的站點,預設監聽的地址顯然是不行的,我們必須通過設置一個可以用於遠程訪問的地址。
配置Kestrel監聽的URL目前有五種方式,本文主要介紹一種相對方便的方式進行配置,就是為伺服器設置一個名稱為:“ASPNETCORE_URLS”的環境變數,並將值設置為:http://0.0.0.0:5000/,其含義代表監聽不局限於某個固定IP,使用路由器為伺服器分配的IP加上5000埠號就可以訪問。
有關更多配置Kestrel監聽URL的方式可詳見下麵的地址:
https://www.cnblogs.com/linezero/p/aspnetcorekestrelurls.html
1.2.使用.NET CLI命令進行發佈
1.打開我們解決方案中啟動項目的目錄,滑鼠右擊空白處,在展開的菜單欄中點擊“在終端中打開”。
2.我們使用.NET CLI命令結合控制台的方式編譯發佈Web站點,在命令行視窗輸入以下命令:
dotnet publish --configuration Release -o MyFirstPublish
以上的命令表示我們將代碼生成“配置”選項設置為Release模式,以便優化程式集。-o表示將編譯發佈後的文件存放在項目根目錄中的“MyFirstPublish”的文件夾中。
3.輸入.NET CLI命令後進行回車,如果執行沒有異常且發佈的文件成功創建,則表示發佈成功。
4.將發佈的文件拷貝到伺服器的指定目錄;
5.打開項目的發佈文件夾,在目錄下找到尾碼為exe的文件(具體文件名和項目的名稱一致),雙擊打開文件以啟動Web服務。
6.在瀏覽器輸入:伺服器IP地址加ASP.NET Core預設使用的埠號5000,測試站點是否能夠正常訪問。
使用自帶的Kestrel Web伺服器部署運行ASP.NET Core應用,實際操作下來你會發現這種方式非常方便,可以說是ASP.NET Core中最快速的部署方案,但是該方案必須要保證項目的exe程式必須一直啟動,如果關閉後我們的站點也會無法啟動,所以在生產環境不建議使用該部署方式,不過對於開發演示階段還是非常適合的。
2.方式二:IIS部署Web應用
2.1.安裝IIS
本文以Windows Server2012 R2操作系統為例,介紹如何在伺服器中安裝IIS。
1.在服務管理器視窗點擊“角色和功能”;
2.安裝類型選擇“基於角色或基於功能的安裝”,單擊下一步;
3.伺服器選擇“從伺服器池中選擇伺服器”,單擊下一步;
4.在選擇伺服器角色界面勾選“Web伺服器IIS”,在彈出的對話框中單擊添加功能即可;
5.在“選擇功能”界面勾選.NET Framework 3.5功能和.NET Framework 4.5節點,以及節點下的所有節點;
6.在“選擇角色服務”界面中,建議為IIS安裝的服務勾選如下選項,勾選後點擊下一步;
7.確認安裝
2.2.使用VS將應用發佈到文件夾
在VS中選擇待發佈的啟動項目滑鼠右擊,在下拉菜單中選擇【發佈】,在彈出的視窗中會載入出VS目前所支持的發佈方式。其中將應用程式發佈到本地文件夾,是我們最“熟悉”的配方,從.NET Framework到.Net Core該方式也一直保留,該方式也是目前VS發佈中最常用的方式,所以我們延用該方式進行發佈,選擇後單擊下一步。
選擇將項目發佈文件存放在哪個目錄,這個目錄根據個人需求自定義或者使用預設路徑即可,單擊下一步。
在選擇好發佈方式和發佈文件的存放路徑後,VS會為項目自動生成一個發佈配置文件,我們在發佈配置文件界面底部點擊【顯示所有設置】可以進行發佈的配置界面。
下麵我們對以上的配置的說明和選擇做一個簡單的介紹,詳見下表:
在配置好發佈文件後,單擊右上角的【發佈】按鈕啟動發佈流程。
2.3.添加IIS網站
在伺服器打開IIS管理器,在左側節點樹選擇網站節點,右擊在菜單中選擇【添加網站】,然後在界面中對部署網站進行配置。其中網站名稱通常設置為項目名稱,IP地址選擇未分配則使用伺服器當前的IP地址,埠號的選擇要確保已開通相應的埠許可權,輸入完內容後單擊【完成】。
在【應用程式池】列表中找到項目對應的應用程式池雙擊打開,在界面中將.NET CLR版本設置為“無托管代碼”
單擊確定後,網站的部署工作已經完成,可以嘗試訪問站點看是否訪問正常。
如果發佈後網站無法訪問,可以瀏覽文章《ASP.NET Core部署手冊:註意事項和問題排查》嘗試分析。
知識改變命運