尝试应付尝试打开PowerPoint文件时不断收到的HRESULT E_FAIL错误。有更多的代码,但是我得到错误的基本操作在下面的代码块中显示。正在使用的参考DLL是:Office 14.0.0和Microsoft.Office.Interop.Powerpoint 14.0.0。错误HRESULT E_FAIL已从使用C#打开PowerPoint文档时调用COM组件返回。
Application application = new Application { DisplayAlerts = PpAlertLevel.ppAlertsNone };
Presentation powerpoint = application.Presentations.Open(@"X:\XXX\xxx.pptx");
powerpoint.SaveAs(@"X:\XXX\saved.pdf", PpSaveAsFileType.ppSaveAsPDF, MsoTriState.msoTrue);
这是一个非常基本的操作,但不知道为什么它抱怨COM异常。 机器上安装了带有Service Pack 1的Microsoft Office 2010 32位。
你有没有试过谷歌的“powerpoint 0x80004005”?最常见的错误似乎是有人试图从ASP.NET使用Office interop(这本身就是一个很大的错误),并且ASP.NET进程/用户错过了访问文件的权限。 – cremor
是否尝试从“网络DTC访问”中选择“无需身份验证”...? –
你有没有找到一个根本原因的答案呢?我有一个测试用例,即使所有VSTO/COM对象在两次调用之间被释放(refcount = 0),第二次调用.Open时也会发生此错误。 –