Office Interop PowerPoint E_NOINTERFACE注册表错误

本文关键字:NOINTERFACE 注册表 错误 Interop PowerPoint Office | 更新日期: 2023-09-27 18:15:17

无法强制转换类型为"System"的COM对象__ComObject"到事件接口类型"Microsoft。办公室Interop。PowerPoint。PresEvents_Event。此操作失败,因为对IID为"{9826398E-2574-3EDD-971-A913EE28A41D}"的接口的COM组件的QueryInterface调用由于以下错误而失败:"不支持此类接口(HRESULT:0x80004002(E_NOINTERFACE(异常(",并且COM组件不支持IID为{91493463-5A91-11CF-8700-00AA0060263B}的源接口

我有两个smilar网站,可以将PPTX转换为pdf。它们使用相同的代码和相同的dll进行操作。一个网站被用作概念和实验的教授,但另一个是商业的。

从经验上讲,一个是完美的,但另一个有缺点。

我使用相同的代码相同的dll,但它从来没有工作

其中两个站点在同一应用程序池中运行。

转换代码为:

var powerpointApp = new Microsoft.Office.Interop.PowerPoint.Application();
var powerpointDocument = powerpointApp.Presentations.Open(@"C:'PowerPoint.pptx", 
                Microsoft.Office.Core.MsoTriState.msoTrue, //ReadOnly
                Microsoft.Office.Core.MsoTriState.msoFalse, //Untitled
                Microsoft.Office.Core.MsoTriState.msoFalse); //Window not visible during converting
powerpointDocument.ExportAsFixedFormat(@"C:'NewPDFFile.pdf", 
                Microsoft.Office.Interop.PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF);
powerpointDocument.Close(); //Close document
powerpointApp.Quit();

堆栈跟踪:

系统。StubHelpers。接口编组器。ConvertToManaged(IntPtr pUnk,IntPtr itfMT、IntPtr classMT、Int32标志(+0
微软办公室Interop。PowerPoint。演示文稿。打开(字符串FileName,MsoTriState只读,MsoTriState无标题,MsoTripStateWithWindow(+0
AB.Hhybrid.WebSite.Controllers.ViewerController.tryConvert((+157
lambda_method(闭包、ControllerBase、Object[](+62
系统网状物Mvc。ActionMethodDispatcher。执行(ControllerBase控制器,对象[]参数(+14
系统网状物Mvc。反射的ActionDescriptor。执行(ControllerContext控制器上下文,IDictionary 2 parameters) +156
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2参数(+27
系统网状物Mvc。异步。AsyncControllerActionInvoker.b_39(IAsyncResultasyncResult,ActionInvocation innerInvokeState(+22
系统网状物Mvc。异步。WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+49
系统网状物Mvc。异步。AsyncControllerActionInvoker。EndInvokeActionMethod(IAsyncResultasyncResult(+34
系统网状物Mvc。异步。AsyncInvocationWithFilters.b_3d((+50系统。网状物Mvc。异步<>c_DisplayClass46.b_3f((+225系统。网状物Mvc。异步<>c_DisplayClass33.b_32(IAsyncResult asyncResult(+10
系统网状物Mvc。异步。WrappedAsyncResult 1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+49
系统网状物Mvc。异步。AsyncControllerActionInvoker。EndInvokeActionMethodWithFilters(IAsyncResultasyncResult(+34
系统网状物Mvc。异步<>c_DisplayClass2b.b_1c((+26系统。网状物Mvc。异步<>c__DisplayClass21.b__1e(IAsyncResultasyncResult(+100
系统网状物Mvc。异步。WrappedAsyncResult 1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+49
系统网状物Mvc。异步。AsyncControllerActionInvoker。EndInvokeAction(IAsyncResultasyncResult(+27
系统网状物Mvc。控制器.b_1d(IAsyncResultasyncResult,ExecuteCoreState-innerState(+13
系统网状物Mvc。异步。包装同步无效1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+54
系统网状物Mvc。控制器。EndExecuteCore(IAsyncResult asyncResult(+39系统网状物Mvc。控制器.b_15(IAsyncResultasyncResult,控制器控制器(+12
系统网状物Mvc。异步。包装同步无效1.CallEndDelegate(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+54
系统网状物Mvc。控制器。EndExecute(IAsyncResult asyncResult(+29
系统网状物Mvc。控制器。系统网状物Mvc。异步。IAsyncController。EndExecute(IAsyncResultasyncResult(+10
系统网状物Mvc。MvcHandler.b_5(IAsyncResultasyncResult,ProcessRequestState innerState(+21
系统网状物Mvc。异步。包装同步无效1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Async.WrappedAsyncResultBase
1.End((+54
系统网状物Mvc。MvcHandler。EndProcessRequest(IAsyncResult asyncResult(+31系统。网状物Mvc。MvcHandler。系统网状物IHttpAsyncHandler。EndProcessRequest(IAsyncResult结果(+9
系统网状物CallHandlerExecutionStep。系统网状物HttpApplication。I执行步骤。执行((+9651796系统。网状物HttpApplication。ExecuteStep(IExecutionStep步骤,Boolean和completedSynchronously(+155

Office Interop PowerPoint E_NOINTERFACE注册表错误

问题的实际原因是基于互操作dll。

我已将PowerPoint dll中的"嵌入互操作类型"更改为False反射特性

最后它像一个迷人的

我猜两个或多个项目使用了相同的dll和嵌入选项,导致上的冲突

windows上的注册表引用和第二个尝试注册新密钥,然后获得

类故障矿井

我希望它能帮助