我正在使用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