質問を述べる前に、これはサーバー管理の問題の可能性があることを認識していますが、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 Deploymentのステップ/タスクのオフラインアプリケーションを使用するオプションがあります。このオプションをチェックしてみてください。一方、展開する前に、対応するWebサイトを停止してみてください。 (https://marketplace.visualstudio.com/items?itemName=Lemoinek.IISutilities) –