我正在将许多 .Net 项目部署到不同的服务器。为此,我的团队使用 TFS 进行构建,然后从构建模板调用 ps1 脚本,该脚本使用 msdeploy 推送到所有不同的服务器。这一切都非常有进取心,不,我现在不能自由切换到不同的东西。这个过程已经工作了几个月,没有任何问题。
今天,部署连续失败了几次,出现了一些不同的错误。仅此一项就让我感到困惑(并且可能不相关),但现在我一直得到的是:
在远程计算机上处理请求时发生错误。'C:\Builds\SomeDirectory\obj\Debug\Package\PackageTmp\AReferencedProject.dll' 的流数据尚不可用。
当我的脚本运行 msdeploy 时发生此错误。dll 由 Windows 服务使用,但服务已停止(据我所知 - 服务停止不会引发任何错误)并且 dll 不是“只读”的。dll 存在于正在构建/部署的机器上以及正在部署到的机器上。
我发现如果我从要部署到的服务器中删除“不可用”的 dll,我可以避免此错误,但问题会在每次后续部署时再次出现,除非我在每次部署之前手动删除此 dll。
我已经看到了这个问题,但我没有推送到 Azure,只是推送到 Windows Server 2008。有谁知道为什么 Microsoft web deploy (msdeploy) 会抛出这个错误?