是否有人成功使用MsDeploy通過preSync runCommand部署Windows服務?我已經使用管理員帳戶工作,但無法讓我在一個標準的用戶帳戶上工作。不幸的是,我不能使用集成身份驗證(我們正在部署到一個外部盒子),並且我們的構建服務器上的日誌中顯示的管理員密碼以純文本形式存在,這並不完全令我感到很舒服。對於這個問題,任何用戶證書都沒有 - 但我看不到解決辦法。使用MsDeploy通過preSync命令部署Windows服務
我使用的命令是這樣的:
"tools/deploy/msdeploy.exe" -verb:sync
-preSync:runCommand="tools\Deploy\PreSyncCommand.cmd",waitInterval=30000
-source:dirPath="C:\BuiltSourcePath"
-dest:computerName=https://server:8172/msdeploy.axd?site=dummysitename,userName=service-deploy,password=service-deploy-pass,authType=basic,dirPath="C:\DeployPath\"
-allowUntrusted
在IIS中設置爲假網站,以服務部署Windows帳戶認證,擁有的contentPath規則和runCommand權限(爲時刻設置爲C:\,因爲尚不完全清楚這是否需要設置爲MsDeploy流向的臨時路徑或部署路徑?)。服務部署帳戶還完全控制目標目錄。我得到以下回:
Performing '-preSync'...
Info: Using ID '7a7d34a1-b5d8-49f1-960a-31c9cf825868' for connections to the remote server.
Info: Using ID '4d0b910c-aca4-4640-84bd-3597d22d99d1' for connections to the remote server.
Info: Updating runCommand (C:\TeamCity\buildAgent\work\aec989676b349656\tools\De
ploy\PreSyncCommand.cmd).
Warning: Access is denied.
Warning: The process 'C:\Windows\system32\cmd.exe' (command line '/c "C:\Windows
\ServiceProfiles\LocalService\AppData\Local\Temp\giz2t0kb.0ay.cmd"') exited with
code '0x1'.
發生這種情況即使PreSyncCommand.cmd的內容是空白的。如果我傳入管理員憑據,相同的命令運行良好。我試着用ProcessMonitor來檢查是否有任何東西被拒絕訪問,但看不到任何 - 所以我猜它仍然是一個MsDeploy身份驗證規則。 WmSvc.log中沒有任何內容(啓用調試),也沒有在事件日誌中。
任何想法?謝謝!
我已經發布了關於如何做這博客條目:http://www.jamescrowley.co.uk/2011/04/28/deploying-windows- services-using-msdeploy/ – 2011-09-05 16:35:02
上面的James Crowley發佈的博客文章已將其移至[現在](http://www.jamescrowley.co.uk/2011/09/05/deploying-windows-services-using- msdeploy /) – 2012-04-12 13:33:06