导出PPT幻灯片图像时Interop库中的内存不足

时间:2017-02-07 07:10:25

标签: c# asp.net-mvc-4 powerpoint office-interop

我想使用Microsoft.Office.Interop Library从Powerpoint演示文稿导出图像:

Application pptApplication = new Application();
Microsoft.Office.Interop.PowerPoint.Presentation pptPresentation = pptApplication.Presentations.Open(fileurl, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
pptPresentation.Slides[1].Export(fullPath + thumbfileName, ".jpg", 800, 600);
pptPresentation.Close();
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(pptPresentation);

虽然它在开发环境中运行良好,但它会在Live Server上引发内存不足。有什么建议?

1 个答案:

答案 0 :(得分:0)

考虑使用Open XML SDK来处理打开的XML文档。有关详细信息,请参阅Working with presentation slides (Open XML SDK)

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。