其實是參考天空垃圾場的部落格
天空垃圾場的連結
http://blog.sanc.idv.tw/2014/08/aspnet-web-deploymvciis.html
Port:
Windows裡面的防火牆是否有開啟 8172 port
雲端服務 是否有另外一層防火牆機制(AWS、Azure) 也要開啟 8172
Server Manger的安裝
IIS、IIS裡面的 Management Service、ASP.NET 3.5 、ASP.NET 4.5、4.5 Extension (主要是因為我們都用4.5以上的版本開發)
IIS裡面的設定
要開啟Management Service 裡面的 Enable設定
可能要額外下載組件安裝
.NET 4.6.2的 (因為我們系統有用到) 好像也可以透過 Web Platform安裝
https://www.microsoft.com/en-us/download/details.aspx?id=53344
還曾經遇過 IIS只 listen到 127.0.0.1 (應該要bind到 0.0.0.0才可以對外IP)
https://stackoverflow.com/questions/29117108/iis-listen-only-127-0-0-1-instead-0-0-0-0
還出現Web Delpy 3.6 未正確安裝 要去新增/移除功能 那邊去change...
https://stackoverflow.com/questions/13870561/getting-a-404-from-wmsvc-via-msdeploy-exe
如果是Windows Server 2016 可能會需要執行以下cmd
For Windows Server 2016 use the following command:
dism /online /enable-feature /featurename:IIS-ASPNET45 /all
The suggested answers with aspnet_regiis
doesn't work on Windows Server 2016:
其他莫名其妙的錯誤 (移除重裝)
也許可以考慮重新安裝webDeploy相關功能
1. 控制台 -> 新增移除程式 -> 把WebDeploy 2.0、3.6、4.0都移除
2. Server Manage -> Remove Feature -> 把 Management Service 勾勾取消掉 -> 移除 -> 重新開機
3. Web Platform Installer 重新安裝 WebDeploy 3.6 & Tool 2.1
如果開啟站台後 出現 403 Forbiden 而且是 ExecuteRequestHandler 相關的錯誤
檢查windows server 有沒有安裝到以下圖片的內容
IIS重啟的指令
net stop was /y
net start w3svc
發布可以過濾特定檔案
VS2017以上才適用的樣子
<PropertyGroup>
<ExcludeFilesFromDeployment>ConfigAppSettings.config;ConfigDbConn.config</ExcludeFilesFromDeployment>
</PropertyGroup>
參考其他人得文章
https://dotblogs.com.tw/technicaldebt/2017/02/24/130208