系統交付給客戶後,系統是有保固時間的。當程式有 bug,就需要更新程式。如果程式更新都要請客戶自己部署,那之後就要讓客戶使用起來方便。
而要請使用管理員權限來部署 ASP.NET 應用程式,就很可能被質疑,如果客戶程度夠的話。
因此需要一個可以使用非管理員權限來部署 ASP.NET 應用程式的方式。
目前使用 IIS 7.
建立更新帳號
只需要一般帳號即可。以下以 smartDeployer 為例
安裝/設定 IIS
如果沒有安裝 IIS,就照著下圖做。如果已經安裝了,就要看看哪些功能未被勾選。
Web Management Server 是一定要裝的。上圖少勾選了。Windows Authentication 不用裝(上圖有誤) 。
安裝 .NET Framework 4.0
記得安裝 .net framework 4.0 及 sp1。如果需要的話
安裝 Web Deploy tool V2.1
我們靠的就是 Web Deploy Tool,目前的版本是 2.1。記得在要部署的伺服器上,要完整安裝。
設定 Web Management Service
Web Management Server 必須靠 Basic 驗證。故需要啟用。
檢查 Enable remote connections (1)是否已經勾選(應已勾選)。若沒有勾選,請先按右方的「Stop」(2)鍵後,勾選「Enable remote connections」 ,再 Start(3)鍵。
授權
我們要授權 smartDeployer 可以在 Default Web Site 更新
最後按 Setup
防火牆
記得打開防火牆,port 8172
以上就完成了網頁伺服器的設定
部署
使用 Visual Studio 2010 打包後的 指令不能用。經明察暗訪後,需修改指令如下
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\\msdeploy.exe" -source:package='Package.zip' -dest:auto,computerName='https://serverNameOrIp:8172/MSDeploy.axd?site=Default%20Web%20Site',userName='domainUser',password='password',authtype='Basic',includeAcls='False' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"Parameters.xml" -whatif -allowUntrusted:true
參考
Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler)