引言:本文是關於.net網站發布到服務器的站點的文章,參照了CSDN作者China_Lzw文章
原文:江小編
服務器配置為Windown Server 2019 Standard
第一:首先在IIS上安裝管理服務,配置好IIS7 允許使用VS2017遠程發布
為IIS7安裝管理服務
1.打開服務器管理,在主頁儀表盤處,添加角色服務,如下圖所示:
2.安裝管理服務,除了默認的服務我們將管理服務也安上,因為我的網站是ASP.NET網站
所以這里我也勾選了ASP.NET的服務,不用全部勾選,按自己需求勾選就好!
3.安裝會等一會兒,安裝好了后會在IIS的管理界面有一個管理服務的圖標,如下圖所示:
4.安裝成功后,在服務里面可以看到有一個服務叫:Web Management Service的服務進程。
執行到上面時,就表示安裝成功了
安裝Web Deploy程序
1.安裝Web Deploy程序也是必須的,如果不安裝時,在VS2019發布時會報以下錯誤,具體見下圖。
未能連接到遠程計算機(“www.jhrs.com”)。請確保在遠程計算機上安裝了Web Deploy 並啟動了所需的進程(“Web 部署代理服務”)。
在以下位置了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE。
遠程服務器返回錯誤:(404)未找到。
(如果之后全部部署完還是報相關錯誤,就卸載再安裝一次)
2.出現上面這個錯誤是因為Server 2019 Standrad服務器上未安裝Web Deploy程序所造成的,
這時你需要到服務器上安裝最新版本的Web Deploy v3.6這個程序。
安裝成功后,在服務里面有個叫:Web 部署代理服務 的服務程序,如下圖所示:
Web-Deploy-Services
經過上面步驟的折騰,基本上就配置好了,接下來我們來配置IIS7,
允許我們在VS2019里面直接發布.net網站服務器上。
第二:服務器端配置好IIS7,允許VS2019通過Web部署方式發布程序
設置管理服務
1.點擊上面第3張圖片的管理服務圖標,進入下圖設置好即可,最后別忘記點右邊的啟用。
為VS2017發布建立專用賬戶,用於更新,並授好權限
2.此處是在服務器端建個專門的發布用戶,我是為了省事,直接授於這個賬號管理員權限的,
直接打開計算機管理,選擇本地用戶和組->用戶->添加用戶(我這里是public_user)。
然后讓該用戶隸屬於Administrator
3.在上面這個步驟完成后,再返回到IIS里面,這時需要選中你的網站,
再點擊IIS管理權限,將你在上個步驟建的賬號賦給這個網站,
不然你咋遠程發布.net 網站到這兒來呢?見下圖姿勢。
4.為網站設置發布用戶
在上面這個圖里面,把新建的用戶加進來。
好了,到此呢服務器端就基本上配置完成了。接下來我們來配置我們本地開發環境的VS2019。
第三:VS2019發布配置
1.選中你的網站項目,右鍵點擊發布Web應用
2.選擇IIS發布
3.進入下一步后,按提示配置好即可,一般 來說,出現錯誤都是服務器端沒有配置好的。
服務器:填寫域名或者IP地址,不要帶 http:// 這個前綴。
站點名稱:你在IIS上網站的名稱
用戶名和密碼:就是你在服務器上專門建立的賬戶和密碼
目標URL:發布成功后,它會自動打開這個地址。
好了,經過上面的配置,我們就可以愉快的發布網站了。
第四:我遇到的錯誤及處理方法
錯誤一:
未能連接到遠程計算機(“www.jhrs.com”)。
請確保在遠程計算機上安裝了Web Deploy 並啟動了所需的進程(“Web 部署代理服務”)。
在以下位置了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DESTINATION_NOT_REACHABLE。
遠程服務器返回錯誤:(404)未找到。
處理方法:
出現上面這個錯誤是因為Server 2008 R2服務器上未安裝Web Deploy程序所造成的,
這時你需要到服務器上安裝最新版本的Web Deploy v3.6這個程序,
安裝好了后會在服務列表看到一個叫:Web 部署代理服務 的程序。
Web Deploy v3.6的下載地址是:https://www.microsoft.com/zh-CN/download/details.aspx?id=43717
錯誤二:
已使用Web部署代理服務連接到”www.jhrs.com”,但未能授權。
請確保你是“www.jhrs.com”上的管理員。
在以下位置了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ADMIN。
遠程服務器返回錯誤:(401)未經授權。
處理方法:
我在部署這個時出現上面這個錯誤,尋找原因花了近1個小時,很是浪費哥哥時間,
原來是粗心大意犯的一個錯誤,在填寫服務器時,它這兒不需要帶 “http://”這個前綴。
錯誤三:
配置正確后,如果你的VS重啟或者重新開關機后,
再次發布會出現不信任的證書的問題,具體報錯的提示內容如下:
C:\Program Files\dotnet\sdk\2.1.402\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targets(139,5):
錯誤 : Web deployment task failed. (已使用指定的進程(“Web Management Service”)連接到遠程計算機(“api.jhrs.com”),
但未能驗證服務器的證書。如果你信任該服務器,請再次連接並允許不信任的證書。
在以下位置了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED。)
已使用指定的進程(“Web Management Service”)連接到遠程計算機(“api.jhrs.com”),
但未能驗證服務器的證書。如果你信任該服務器,請再次連接並允許不信任的證書。
在以下位置了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED。
基礎連接已經關閉: 未能為 SSL/TLS 安全通道建立信任關系。
根據驗證過程,遠程證書無效。
Publish failed to deploy.
處理方法:
- 第一:打開網站下的website.publishproj文件
- 第二:在最后一個節點(<PropertyGroup></PropertyGroup>)下增加一個節點,配置內容是:<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
如下圖所示:
完工:經過這些處理后,就做到了隨時發布,隨時更新.net 網站到服務器上,
不需要你再遠程到服務器上復制文件,再手工替換了。
但任可能包含一些問題,比如網站文件夾用戶權限沒給夠,
按照上面方法設置基本解決了百分之90以上的問題,剩下的度娘都能解決啦!