多数の .Net プロジェクトをさまざまなサーバーにデプロイしています。これを行うために、私のチームは TFS を使用してビルドし、ビルド テンプレートから msdeploy を使用してすべての異なるサーバーにプッシュする ps1 スクリプトを呼び出します。それはすべて非常にエンタープライズであり、いいえ、現時点で別のものに切り替える自由はありません. このプロセスは何ヶ月も問題なく機能しています。
今日、展開はいくつかの異なるエラーで数回連続して失敗しました。それだけで私は混乱します(そして関連性がないかもしれません)が、今私が一貫して得ているものはこれです:
リモート コンピューターで要求が処理されたときにエラーが発生しました。「C:\Builds\SomeDirectory\obj\Debug\Package\PackageTmp\AReferencedProject.dll」のストリーム データはまだ利用できません。
このエラーは、スクリプトが msdeploy を実行するときに発生します。dllはWindowsサービスで使用されていますが、サービスは停止しており(私が知る限り、サービス停止はエラーをスローしていません)、dllは「読み取り専用」ではありません。dll は、構築/展開しているマシンと展開先のマシンに存在します。
展開先のサーバーから「使用できない」dll を削除すると、このエラーを回避できることがわかりましたが、展開する前にこの dll を手動で削除しない限り、その後の展開ごとに問題が発生します。
この問題を見たことがありますが、Azure にプッシュするのではなく、Windows Server 2008 にプッシュするだけです。Microsoft Web デプロイ (msdeploy) がこのエラーをスローする理由を知っている人はいますか?