在學習和工作的過程中,發現很多同事、朋友,在做.NET Web應用發布的時候,依然在走 生成-復制到服務器 這樣的方式,稍微高級一點的,就是先發布到本地,再上傳到服務器
這種方式不僅效率低下,而且不易進行版本控制,程序稍微復雜一些,加上團隊協作,發布就會出現各種不可預料的版本問題。
正好這兩天在玩Azure和Windows Server 2016,詳見《【初碼干貨】【Azure系列】1、再次感受Azure,體驗Windows Server 2016並部署BlogEngine.NET》,而我在實際使用過程中,也遇到過不少關於Web Deploy的坑,所以在這裡,將WebDeploy的完整配置和使用方法重新梳理一遍
特別值得注意的是,雖然以Windows Server 2016作為演示,但和在Windows Server 2012 R2裡面的步驟是完全一致!
下面是完整的步驟
1、在IIS裡面點擊獲取新的Web平台組件
2、下載Web平台組件並安裝
3、在其中搜索Web Deploy,找到3.5版本,並安裝
4、繼續搜索Web Deploy 3.6版本,並安裝
安裝好之後,重新進入IIS,發現新增了一些功能
5、進入計算機管理,修改兩個用戶(WDeployAdmin和WDeployConfigWriter)的密碼屬性,包括設置永不過期以及設置一個固定密碼
6、回到IIS中,對Web Deploy的管理服務委派中的部分提供程序的用戶進行重新配置(使用剛才設置的密碼)
這裡只列舉一個 backupSettings的配置,其他的3個大家依葫蘆畫瓢就可以了
7、添加一個IIS管理用戶
7、配置防火牆
我們可以看到,WebDeploy服務的默認服務端口是8172
因此要在入口規則中添加一個8172端口的入站規則
默認WebDeploy程序會添加防火牆例外處理,但是如果還是不行,則需要手工添加一下的。
好了,到目前為止,Web Deploy的配置,就大功告成了,一定要重啟服務器
下面還需要進行測試(接著看,不要走,測試裡面有一步權限配置非常重要)
1、新建一個IIS站點
特別值得注意的是,這個IIS站點所在的目錄的文件夾,一定要有Local Service權限!否則在發布的是否,會提示權限不正確!
2、在站點的IIS管理器權限裡面,添加剛才新增IIS管理用戶
這裡有個指的注意的,IIS支持子站點的詳細權限配置,如有有子應用,可以進行類似的配置
3、在Visual Studio 2015裡面新建一個asp.net web applicaiton空項目,進行測試
新建一個網頁
4、測試發布
這裡的站點名稱,就是IIS的站點名稱,如果是子站點,就填寫
WebDeploy測試/子站點
在發布之前,最好預覽一下,這是一個很好的發布習慣!
最後點發布,會出現記錄
好了,看一下效果 http://webdeploytest.printhelloworld.com/
作者:張柔,發布於 博客園 與 張柔的博客
轉載請注明出處,歡迎郵件交流:[email protected],或者加QQ群:11444444