2 bendanxieshi bendanxieshi 于 2015.07.22 16:58 提问

Word.Application的 COM 对象强制转换为接口类型时报错

asp.net的项目中有个导出word的功能,每当执行
doc = appWord.Documents.Add(ref templateFile, ref objfalse, ref objDocType, ref objtrue);
到这句的时候报错,catch到一个异常
图片说明

此时,进程里已经产生一个word进程。
在处理异常的时候,
doc.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);
这句代码也会报错:
图片说明
网上百度的很多解决办法都没用。有大神指点下么?

4个回答

Tiger_Zhao
Tiger_Zhao   Rxr 2015.07.22 16:58

你开发时工程引用的Word和当前创建的Word版本不一致。

Tiger_Zhao
Tiger_Zhao 回复Jason_HuaHua: 你要用 new 创建 Word.Application,而不是用 CreateObject 方式创建。
接近 3 年之前 回复
bendanxieshi
bendanxieshi 我有重新添加引用的,还是一样
接近 3 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.07.22 17:11
bendanxieshi
bendanxieshi 这个不管用的啊,我百度了很多,都是这么说的,注册表里有旧的版本,但是我查看了下我的,就1个最新版本的
接近 3 年之前 回复
bendanxieshi
bendanxieshi   2015.07.22 17:38

图片说明

bendanxieshi
bendanxieshi   2015.07.22 17:38

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
无法将类型为“Shell32.ShellClass”的 COM 对象强制转换为接口类型“Shell32.IShellDispatch 6”
今天想研究一下mp3 然后在输出mp3长度的时候用了如下代码(网上搬得): string file = "D:\\AccountDaemon\\My Music\\MyMusics\\Luxtos.mp3"; ShellClass sh = new ShellClass(); Folder dir = sh.NameSpace(Path.GetD
无法将类型为“*Class”的 COM 对象强制转换为接口类型 失败原因.
在用.net2.0调用COM的某方法时报:System.InvalidCastException: 无法将类型为“*Class”的 COM 对象强制转换为接口类型“I*”。此操作失败的原因是对 IID 为“{BBB9E30B-B4EB-4560-B5A7-1B59B33EF6BF}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRES
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostS
今天使用DM.DLL的时候,出现下面的错误,网上搜索了一些资料,大多都是说环境问题。但我感觉不是。最后找到下面这篇文章,感觉与自己的情况很像,我也是使用的了多线程才导致错误的。在使用多线程的时候,要在子线程里重新创建对象,或者是使用委托也是可以的。 先看问题: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStu
COM 对象强制转换为接口类型问题
先看问题: 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider”。此操作失败的原因是对 IID 为“
ArcEngine 无法将类型为"Systerm._ComObject"的对象强制转换为类型******
问题如图所示: 解决方法:http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/#/Interacting_with_singleton_objects/00010000043p000000/
vs运行时报错:无法将COM对象强制转换成接口
运行时警告:警告 1 未能确定 COM 引用“ExcelClientPkgLib”的依赖项。加载类型库/DLL 时出错。 (异常来自 HRESULT:0x80029C4A (TYPE_E_CANTLOADLIBRARY)) 异常原因:wps注册表和office冲突。 解决办法:重新安装wps,然后用自带的卸载程序卸载(注意:“保留配置信息方便下次是使用”我直接把这个勾给去掉了),注册表清理
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.OLE.Interop.IServiceProvider”。
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.OLE.Interop.IServiceProvider”。此操作失败的原因是对 IID 为“{6D5140C1-7436-11CE-8034-00AA006009FA}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口
SQL本地登陆提示无法将类型为"System.comobject" 的com对象强制转换为接口类型
请执行: 32 bit regsvr32 "C:\Program Files\Internet Explorer\ieproxy.dll" 64 bit regsvr32 "C:\Program Files (x86)\Internet Explorer\ieproxy.dll" ====== 如果還不行,請再執行 C:\windows\system32\regsvr32
OPC客户端调用时提示“无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型”...
引发错误的原因: 64位系统下,有些组件(微软的)只有32位版本,64位的应用程序调用不了32位的COM组件,返回的结果就是没有注册类 别。 在64位系统中,VS2008默认会生成64位的程序,你可以改变程序的部署平台为×86来生成32位的程序。 解决方法: 在“解决方案”-》“开发项目的名称”,鼠标右击,单击“属性”-》“生成”-》“目标平台”,把“AnyCPU”改成“ ×
无法将类型为 excel.applicationclass 的 com 强制转换为接口类型 的解决方法
笔者今天尝试用C#把一些数据导出为Excel格式,但是在尝试的过程中遇到诸多的问题,好在都是一些基础问题,网上一搜就有很多好心人解答,但是最终卡在了题目所说的问题上,久久不能解决,在百度上查询无果(不得不说现在转载的力量真的太强大,找来找去都是那么几篇),只好转战必应(前段时间用过必应,觉得必应做的很良心,比如搜一些东西的时候,有官网必应先出的一定是官网相关的,但是在中文领域,有些东西还是百度用起来