選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
1 分鐘閱讀時間 (271 個字)

ASP .NET部署方式比較,如何透過Web Deploy部署至IIS Server

annie-spratt-AkftcHujUmk-unsplash-_20210310-021303_1

本公司在自動化部署ASP .NET專案主要分為以下兩種:Deploy over SSH和Web Deploy,而此篇主要比較兩者各方面的差異,包括如何部署,架設伺服器流程與自動化部署方式,並說明使用Web Deploy部署到IIS Server。

  Deploy over SSH Web Deploy處理常式
部署方式 直接利用SSH將專案上傳至IIS站台資料夾 使用Visual Studio IDE建立設定檔(.pubxml),再利用設定檔進行部署
優點 1.事前準備較單純

2.可經由SSH執行server端的batch指令做出更彈性的操作 。
1.第一次部署以後只會上傳更新過後的檔案,後續部署較快

2.設定檔依附於專案,因此專案有改動時不必更改上傳設定

3.可設定忽略上傳的檔案(ex.Web.config)

4.可使用IIS虛擬帳戶進行部署,用戶權限管理較方便
缺點 1.需要事先架設ssh server

2.上傳的檔案路徑寫死,若專案有改動就必須更改ssh

3.連接身分的權限必須規劃好,否則有安全性問題

4.因為是直接將資料夾複製至Server端,因此容易上傳非必要的檔案,且部署版本難以掌控
1.IIS第一次設定較繁瑣

2.發行設定檔的建立綁定Visual Studio
IIS 伺服器事前準備 1.架設SSH server

2.建立IIS站台並activate即可
1.IIS需做一連串設定

2.建立專案的發行設定檔
人工部署 直接將新檔案透過SSH上傳至IIS Server 使用IDE一鍵部署
自動化部署 使用SSH腳本將檔案上傳至IIS Server 在MSBuild建置時給予deployOnBuild參數並指定設定檔

看完這張表可以發現,雖然Web Deploy處理常式的初始設定比較麻煩,但是優點卻多SSH很多,但可能有些人對於Web Deploy(自動化)部署流程一知半解,例如下了要建置後部署的參數但卻沒指定部署設定檔,導致無法部署成功等等的問題,故在此說明如何使用Web Deploy部署至IIS Server,以及在Jenkins上自動化部署的方法。

建立發行設定檔(.pubxml)

開啟你的ASP .NET專案->右鍵->發行(先確認專案與要上傳的IIS站台集區的.NET Framework是否吻合)

輸入Server 位址、站台名稱及使用者帳密,點擊驗證連線,若出現綠色勾勾,代表權限已通過,儲存,設定檔就建立好了。

儲存後就會出現剛剛的設定檔,點擊發佈,即可完成人工部署

 

Jenkins自動化部署

建立好設定檔後,會在發佈的專案\Properties\PublishProfiles\裡產生設定檔,將此設定檔上傳至版控,並在專案Jenkins的MSBuild區塊加入以下幾行參數。

/p:DeployOnBuild=true:告訴MSBuild建置完後要進行Web Deploy
/p:PublishProfile=FolderProfile:想要使用的部署設定檔名稱
/p:Password=%PublishPassword%:發佈設定檔的使用者密碼,可使用Jenkins 建置環境中的Inject passwords to the build as environment variables來保護密碼隱私

如此就可以很方便的進行持續部署的功能,透過Web Deploy就不需要擔心新版Web沒上傳到IIS Server等等部署失敗還摸不著頭緒的問題了。

Docker簡介
一次解決MSBuild遺失Web Application.targets的方法
 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/02, 週四

Captcha 圖像