MSDeploy 抛出奇怪的错误:xxxxx.dll 的流数据尚不可用

Posted

技术标签:

【中文标题】MSDeploy 抛出奇怪的错误:xxxxx.dll 的流数据尚不可用【英文标题】:MSDeploy throwing weird error: Stream data of xxxxx.dll is not yet available 【发布时间】:2013-04-27 04:18:06 【问题描述】:

我正在将多个 .Net 项目部署到不同的服务器。为此,我的团队使用 TFS 进行构建,然后从构建模板调用 ps1 脚本,该脚本使用 msdeploy 推送到所有不同的服务器。这一切都非常有进取心,不,我现在不能随意切换到不同的东西。这个过程已经运行了几个月,没有任何问题。

今天部署连续失败了几次,出现了一些不同的错误。仅这一点就让我感到困惑(并且可能不相关),但现在我一直得到的是:

在远程计算机上处​​理请求时出错。 'C:\Builds\SomeDirectory\obj\Debug\Package\PackageTmp\AReferencedProject.dll' 的流数据尚不可用。

当我的脚本运行 msdeploy 时发生此错误。 dll 由 Windows 服务使用,但服务已停止(据我所知 - 服务停止不会引发任何错误)并且 dll 不是“只读”的。 dll 存在于正在构建/部署的机器以及正在部署到的机器上。

我发现,如果我从要部署到的服务器中删除“不可用”的 dll,我可以避免此错误,但问题会在每次后续部署时再次出现,除非我在每次部署之前手动删除此 dll。

我见过this problem,但我没有推送到 Azure,只是推送到 Windows Server 2008。有谁知道为什么 Microsoft web deploy (msdeploy) 会抛出这个错误?

【问题讨论】:

【参考方案1】:

我们一直在使用 SQLite.Interop.dll(ELMAH 在我们的 Web 应用程序中使用)遇到这个问题。据我所知,这个问题与我们正在使用 DLL SQLite.Interop.dll 的事实有关。通过 ELMAH 的 web 应用程序,并且由于某种原因,此 DLL 没有被影子复制。我们使用的解决方案是recommended here 在每次部署时回收应用程序池。我们的命令是这样的:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site/ourApp",computerName="DeployComputer"

这允许随后同步我们的部署包的 msdeploy 成功。有人回复那个论坛还建议使用“-enableRule:AppOffline”,我们不需要尝试。

【讨论】:

【参考方案2】:

我遇到了同样的问题。尝试部署几次都出现同样的错误。

回收服务器上的应用程序池解决了这个问题,这样我就可以再次运行正常的部署了。

【讨论】:

我希望我能再次得到这个问题,这样我就可以测试这些建议的解决方案:( 它又抬起了丑陋的头,但我尝试回收所有应用程序池,重新启动 IIS,甚至重新启动构建和 Web 服务器。这些都没有帮助我 OK - 这解决了问题。我的具体问题是 dll 被锁定,就像你的问题一样。唯一的区别是我继承的部署是同时部署网站和服务。这些服务是使用 msdeploy 以一种被黑客入侵的方式部署的,我通过查看构建日志发现它是一个存在问题的服务。查看服务后,我发现它被卡住了,所以我将其杀死并重新启动 - 与重新启动站点的应用程序池几乎相同【参考方案3】:

我今天遇到了和你完全相同的问题,遇到了你没有答案的问题,开始把我的头发拉出来……关于这个问题的文章或建议太少了,我几乎给出了起来!!

但是,我已经能够为我解决这个问题,所以我发布我的解决方案来帮助你自己和其他任何遭受此问题困扰的人。

无论出于何种原因,我在 IIS 中的 Site & AppPool 似乎有点混乱,并开始抛出上述问题中描述的错误。为了解决这个问题,我删除了原始站点(停止了站点和 AppPool),创建了一个具有相同设置的全新站点和 AppPool,使用 WebDeploy 发布到它,现在它似乎又可以正常运行了。

这可能对其他人不起作用,但它有望为人们提供其他尝试。

【讨论】:

谢谢约翰。我最近没有看到它(我没有做任何事情就消失了)但是如果它再次抬起丑陋的头,我会尝试这个解决方案。我想知道它是否与文件夹权限有关,因为创建一个新站点为您解决了这个问题

以上是关于MSDeploy 抛出奇怪的错误:xxxxx.dll 的流数据尚不可用的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 抛出奇怪的错误:类未映射

msdeploy --- 它有效还是很糟糕?

Image Magick Module 抛出奇怪的错误(Express js Node js)

Multer在通过ng-file上传上传文件时抛出奇怪的错误

使用 msdeploy 转换文件

使用 MSDeploy 为包设置应用程序池