Dot-Net
打包/發布 Azure 項目時出現 System.OutOfMemoryException
我一直在嘗試打包/發布我的 Azure 項目一段時間(但無濟於事)。我嘗試了以下方法:
- 右鍵點擊 -> 從 Visual Studio 打包/發布 (OutOfMemoryException)
- CSPack(我關閉了它,即使在接近 2 小時後它仍然保持執行)
- MSBuild (OutOfMemoryException)
如何規避這個 OutOfMemoryException?我目前正在執行具有 12GB RAM 的 VS2012,所以雖然我認為該項目非常大(很多很多子項目),但我認為我的機器能夠處理它。例外情況如下:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.1\Microsoft.WindowsAzure.targets(2866, 5):錯誤:拋出了“System.OutOfMemoryException”類型的異常。
非常沮喪,如果有人能給我一些友好的建議,我將非常感激!
這通常是由於試圖將太多內容放入您的包中,而不是由於您引用了多少項目。可以放入 .cspkg zip 流的最大大小是 .cspkg 可以上傳到 Azure (600 MB)。
您應該從包中刪除所有靜態內容,例如圖像、音頻或影片,並將這些資產放入 blob 儲存中。您可以更改 href 以便客戶直接從 blob 儲存下載內容,或者您可以使用Azure Boostrapper之類的工具在啟動時將內容下載到 VM。
此外,順便說一句,您機器上的 RAM 量與在任何應用程序中獲取 OutOfMemoryException 沒有任何關係(除非您的交換文件太小,但這是一個不同的問題)。
發生此錯誤的原因不僅在於包大小。我們偶爾會收到此錯誤,但只需重新啟動 Visual Studio 即可解決此問題。