Dot-Net

MSDeploy 拋出奇怪的錯誤:xxxxx.dll 的流數據尚不可用

  • November 13, 2013

我正在將許多 .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) 會拋出這個錯誤?

我有同樣的問題。嘗試部署幾次,但出現相同的錯誤。

回收伺服器上的應用程序池解決了這個問題,這樣我就可以再次執行正常的部署了。

我們一直在使用 SQLite.Interop.dll(ELMAH 在我們的 Web 應用程序中使用)遇到這個問題。據我所知,這個問題與我們的 Web 應用程序正在使用 DLL SQLite.Interop.dll 的事實有關ELMAH,由於某種原因,這個 DLL 沒有被影子複製。我們使用的解決方案是這裡推薦的在每次部署時回收應用程序池。我們的命令是這樣的:

"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”,我們不需要嘗試。

引用自:https://stackoverflow.com/questions/16347427