在說明問題之前,我知道這可能是更多的服務器管理問題,但我正在尋求一個解決方案,涉及修復/修改VSTS發佈過程而不是處理服務器權限(我不相信這是服務器問題)。VSTS發佈由於在遠程服務器上使用的文件而失敗
我有一個VSTS構建定義和發佈定義。 版本定義將構建中的文件複製到遠程服務器(IIS站點)。
我的問題是,這個過程大概60%的時間內失敗。
日誌文件表示失敗的錯誤:
2017-04-06T17:06:07.3886551Z Executing the powershell script: D:\BuildAgent\agent\tasks\IISWebAppDeploy\1.4.3\Main.ps1
2017-04-06T17:06:07.5605268Z Starting deployment of IIS Web Deploy Package : \\server01\Deploy\patrol\dev\rest_service\822\822.zip
2017-04-06T17:06:07.6542742Z Performing deployment in parallel on all the machines.
2017-04-06T17:06:07.6542742Z Deployment started for machine: SERVER01 with port 5985.
2017-04-06T17:06:27.9820654Z Deployment status for machine SERVER01 : Failed
2017-04-06T17:06:28.0133029Z Deployment failed on machine SERVER01 with following message : System.Exception: Error Code: ERROR_FILE_IN_USE
2017-04-06T17:06:28.0445759Z ##[error]Microsoft.PowerShell.Commands.WriteErrorException: Deployment on one or more machines failed.
2017-04-06T17:06:28.0445759Z ##[error]For more info please refer to http://aka.ms/iisextnreadme
我通過手動遠程處理到服務器並手動刪除目標目錄的內容circumvate的問題。我發現每次發佈失敗時,我的手動刪除都會導致一個警告,以彈出另一個進程正在使用某個.exe文件。我的懷疑是這是釋放失敗的原因。
是否有一些額外的步驟可以添加到發佈強制刪除/清除目標目錄?
您應該改爲識別*使用該文件的進程*。然後作出安排,停止該過程作爲您的發行版的一部分,然後重新啓動它。或者消除這個過程。請參閱[如何找到在Windows中打開文件的過程?](http://serverfault.com/questions/1966) – mason
您可以共享哪個文件正在使用以及哪個進程正在使用它,就像mason提到的那樣? –
IIS Web部署步驟/任務有Take App Offline選項,請嘗試檢查此選項。另一方面,在部署之前嘗試停止相應的網站。 (https://marketplace.visualstudio.com/items?itemName=Lemoinek.IISutilities) –