我使用MSDeploy.exe發表我的webapp:我們怎樣在VisualStudio中使用的相同的發佈命令發佈
msdeploy.exe
-verb:sync
-source:package=mypackage.zip
-dest:auto,computerName=MyServer
-allowUntrusted
這將我的包同步到目標服務器,並在刪除所有不必要的文件處理。 有時資源(例如:MyResource.dll)通過IIS工作進程鎖定,它不會允許刪除操作,從而部署失敗,錯誤:
Access to the path "C:\MyResource.dll" is denied.
不過,如果我使用VisualStudio的內發佈功能,我的網站發佈到服務器沒有任何問題。鎖定的文件保留在文件夾中,錯誤被忽略。
我想通VS可能使用此開關:
-enableRule:DoNotDeleteRule
但我不是很肯定。
我的問題: -
- 我們可以得到通過輸出窗口使用VS發佈命令或日誌文件?
- 有沒有辦法在遠程服務器上停止應用程序池? (這將有助於釋放鎖定的資源) * IISRESET不適合,因爲我不想讓所有網站都只是部署一個Web應用程序。
我也試過PSEXEC:
psexec.exe -s \\MyServer appcmd.exe stop apppool /apppool.name=MyAppPool
它運行在命令行罰款,但是當我把它放在腳本構建的自動化,它返回的錯誤:
The handle is invalid.
Couldn't access MyServer.
(將我的頭撞在牆上)
我已經試過了appoffline方法,它推翻了網站,但沒有回收池。資源仍然鎖定,直到我執行手動回收apppool。 – Kagawa