我正在使用VSTO Powerpoint API來自動創建Powerpoint文件。我所發現的是,使用最基本的調用創建從Windows 7系統上的Web應用程序一個PowerPoint文件會導致內存不足的錯誤(即操縱打開的文件也未能其它VSTO電話):內存不足故障自動化VSTO Powerpoint API
PowerPoint.Presentation presentation = _ppPresentations.Add(Office.MsoTriState.msoTrue);
string outputDirectory= getOutputDirectory();
presentation.SaveAs(outputDirectory+ "\\CreateSlideTestOutput.pptx",
PowerPoint.PpSaveAsFileType.ppSaveAsDefault, Office.MsoTriState.msoTrue);
我收到的錯誤是「不足的內存」在正在進行操縱文件的任何VSTO API調用(例如,保存或添加幻燈片到PowerPoint中)。
但是,我發現如果我在單元測試或用戶可執行文件(.exe)中運行相同的代碼,添加內容,操作和保存Powerpoint文件都沒有問題。
但是,當我嘗試創建Windows服務以自動執行用戶可執行文件中使用的相同代碼時,我又收到了內存不足錯誤。我可以在我的服務中設置一個斷點,並查看它在從我的Web應用程序調用時發生失敗的完全相同的VSTO API調用時失敗。
有沒有人有解釋爲什麼用戶可執行線程可以執行VSTO API調用而沒有任何問題(以及內存中沒有可觀察的跳轉),而我的應用程序池線程或Windows服務線程總是會運行內存不足錯誤?
如果您在用戶帳戶下運行Windows服務? – 2013-05-07 14:27:52
@BrijeshMishra我遇到了同樣的問題,無論是我的用戶帳戶還是其他任何 – stevebot 2013-05-07 15:24:55
http://msdn.microsoft.com/en-us/library/aa679807%28office.11%29.aspx有一些清理工作時使用這些可能有助於解決錯誤的API - 你在嘗試嗎? – 2013-06-24 17:02:49