今天向大家詳細介紹一下,如何將一個.net core項目部署到遠程云服務(wù)器,我的服務(wù)器鏡像為
window server 2019.
1.安裝IIS
首先在服務(wù)器上安裝IIS(我的是最新的iis10),我已經(jīng)安裝完畢,這個安裝操作比較簡單,自行谷歌。
安裝完成后會看到下面的界面:
2.安裝web deploy程序
該程序的功能:
它可以讓我們從Visual Studio中一鍵部署網(wǎng)站到IIS服務(wù)器,并且智能判斷哪些文件是新增的,哪些是需要修改或刪除的
有關(guān)介紹,請看這篇文章:Web Deploy這個IIS的遷移工具【圖文】_一行學(xué)習(xí)_51CTO博客
Web Deploy 服務(wù)器安裝設(shè)置與使用_Codec007的專欄-CSDN博客
Download Address:Download Web Deploy v3.6 from Official Microsoft Download Center
根據(jù)你的操作系統(tǒng),選擇對應(yīng)的版本安裝即可。
安裝完成后,在服務(wù)中會添加這個服務(wù):
或者安裝
Web Platform Installer : The Official Microsoft IIS Site
3.服務(wù)器端配置好IIS10,允許使用VS2019通過Web部署方式發(fā)布程序?
雙擊管理服務(wù):先把服務(wù)停止,才能編輯.指定IP地址(內(nèi)網(wǎng)IP)
默認情況下,Default web site所使用的端口為80,改掉給我們的新建網(wǎng)站使用。
新建一個web 站點:
這里主機名就是域名,需要進行注冊申請。
簡單做個介紹:
有時候我們會發(fā)現(xiàn)當我們訪問一個IIS網(wǎng)站時,使用網(wǎng)址可以正常訪問,但是使用IP卻不行,這是什么原因呢?
? ? ?原來IIS可以使用一個IP地址和端口綁定多個網(wǎng)站,這些網(wǎng)站的IP地址與端口都一樣,因此在客戶端或瀏覽器中使用IP訪問IIS會失敗,因為單單根據(jù)IP地址IIS無法確定你要訪問的具體是哪一個網(wǎng)站,此時必須使用主機名也就是網(wǎng)址(例如:www.blog.sina.com.cn)才能訪問到相應(yīng)的網(wǎng)站。其工作原理如下文所述。
? ? 客戶端或瀏覽器使用網(wǎng)址發(fā)起請求后,會首先到DNS中查找網(wǎng)址對應(yīng)的IP地址,然后構(gòu)建HTTP請求,并把網(wǎng)址賦值給HTTP Header的Host屬性,最后把HTTP請求發(fā)送給目標IP。
? ? IIS收到HTTP請求后,首先根據(jù)IP地址,找打所有綁定到該IP和端口的站點,然后根據(jù)HTTP Header的Host屬性從這些網(wǎng)站中查找對應(yīng)的Host Header設(shè)置,找到后,把HTTP請求交給該站點處理。如果沒找到相應(yīng)的網(wǎng)站,則尋找這些站點中沒有設(shè)置Host Header的站點,把HTTP請求交給它處理。最后IIS把處理完的信息再發(fā)送給客戶端。
總結(jié)來說:我們申請到的域名,綁定到了當前服務(wù)器下的此站點(指定IP下的指定站點)
有關(guān)客戶端請求,服務(wù)器的響應(yīng)的具體工作原理,可以看看計算機網(wǎng)絡(luò)相關(guān)知識:
這部分會涉及到DNS域名解析服務(wù)器.
添加網(wǎng)站部署所使用的User:計算機管理--->本地用戶和組
將此User添加到Remote Desktop User組中:
將之前添加的webdeploy_user這個用戶,授權(quán)可以管理操作新建的網(wǎng)站.
為了有足夠的操作權(quán)限,我直接放開此用戶可以操作管理此網(wǎng)站對應(yīng)的目錄文件:
4.安裝ASP.NET CORE run time以及sdk:
我的項目為3.1版本,選擇你項目對應(yīng)的版本就ok了,通常來說高版本兼容低版本吧.
Download .NET Core 3.1 (Linux, macOS, and Windows)
?安裝完成之后查看IIS:
?
應(yīng)用程序池,改為無托管代碼:
?
這樣的話,才能保證asp.net core項目的成功運行。
有關(guān)IIS的詳細管理細節(jié),會在以后做一個專題的介紹。
5.使用VS2019部署發(fā)布web api項目:?
項目右鍵--->發(fā)布:
?驗證連接:出現(xiàn)下面的錯誤
?實際上我已經(jīng)成功安裝,我第一感覺就是防火墻或者某個指定端口沒開放,果不其然.
Soluton Address:??????Web Deploy部署錯誤:未能連接到遠程計算機,請確保在遠程計算機上安裝了 Web Deploy 并啟動了所需的進程("Web Management Service") - 范斯 - 博客園
管理服務(wù)默認是用8172端口,要保證端口能夠正常通過防火墻
騰訊云防火墻管理界面:開放此端口:
?然后再嘗試:檢驗通過,保存,發(fā)布即可
?然后去服務(wù)器查看:
?由于只有一個網(wǎng)站,并且開放了80端口,直接通過ip地址/swagger,就可以直接訪問到web api站點了。
?如果是實際項目中,肯定是將每個站點綁定到指定的域名上,通過域名去訪問。
至此,整個iis站點的搭建和web 項目的完整部署就介紹到這了,文章來源:http://www.zghlxwxcb.cn/news/detail-420938.html
這種發(fā)布實際還是比較簡單,但如果遇到多項目多分支項目的話,還是比較不太試用?,F(xiàn)在比較推薦使用Jenkins做自動化部署項目,后期會把整個搭建過程和部署操作分享出來文章來源地址http://www.zghlxwxcb.cn/news/detail-420938.html
到了這里,關(guān)于asp.net core 項目從本地部署到遠程云服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!