我們使用excel interop在windows服務中創建excel報告。一切工作正常在Windows 7操作系統。但是,當服務部署在Win2K8R2服務器上時,觀察到使用「SaveAs()」方法保存Excel文檔時拋出以下異常。Excel Interop的替代方法SaveAs()方法
例外 - HRESULT:0x800A03EC
研究之後才知道,我們需要使用 「SaveCopyAs()」 或使用 「關閉()」 而不是另存爲()方法。我嘗試使用「SaveCopyAs()」方法,發現excel報告創建工作正常,但任務管理器中的「Excel.exe」仍然存在。這是一個內存泄漏問題。
因此使用「Close(true,filename,false)」方法,一切正常,包括清除任務管理器中的「Excel.exe」進程。
通過在測試兩種方案的使用後將對象分配給null,可考慮通用機制來處置COM對象。
現在,我很困惑正確的方法來推進。請澄清。