总结com组件问题,随笔记录


一、从 IClassFactory 为 CLSID 为 {00024500-0000-0000-C000-000000000046} 的 COM 组件创建实例失败,原因是出现以下错误:80010001。

解决方法:

安装wps2016可以解决。

二、检索 COM 类工厂中 CLSID 为 {0DB6B315-0A8D-40EB-8F21-3408162AF3F5} 的组件时失败,原因是出现以下错误: 80040154。

解决方法:

①win+R,再输入regedit,打开注册表,搜索CLSID  {0DB6B315-0A8D-40EB-8F21-3408162AF3F5},打开并找到InprocServer32(如果搜索到的第一个没有InprocServer32文件夹,则继续搜索),根据信息找到该ID对应的DLL(psubs.dll)。

②开始=>搜索cmd=>右键管理员方式运行,输入cd C:\Windows\SysWOW64回车,输入regsvr32 C:\Windows\SysWOW64\psubs.dll,回车显示注册成功。

  无CLSID的异常【"没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))" 】。

解决方法:

因为不确定哪个未注册,debug找到出错代码位置,自己判断是哪个dll,根据上述注册一遍。

注:如果注册表内搜索不到出错的CLSID,只能debug找到错误地点,自行判断哪个dll出错。

三、无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。

解决方法:

这个错误一般是安装office才出现的,此时,只需安装wps,安装wps是为了注册COM组件。安装成功后,异常不在发生,卸载WPS。

注:此时可以卸载WPS,要从控制面板卸载,不要使用360卸载,360会把刚注册的组件清除,异常会再次出现。

四、异常来自 HRESULT:0x800AC472。

解决方法:

开始----运行----粘贴  excel.exe /regserver,回车。

五、远程过程调用失败。 (异常来自 HRESULT:0x800706BE)。

解决方法:

①win+R,输入dcomcnfg.exe,点击组件服务,选中我的电脑右键属性。

②找到COM安全=>编辑默认值。

③把所有用户的权限全部都选允许。

六、检索 COM 类工厂中 CLSID 为 {000208D5-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

解决方法:

①win+R 输入dcomcnfg.exe,打开组件服务,依次打开找到DCOM配置。

②找到DCOM配置下的Microsoft Excel Application,右键属性。

③点击安全,启动和激活权限、访问权限选择自定义,并选择编辑。

④添加用户NETWORK SERVICE和IIS_IUSRS,如下图所示。

⑤点击标识,选择启动用户,确定。(有时选择启动用户还会出现异常,那就选择交互式用户,具体看情况)

七、服务器出现意外情况。(异常来自 HRESULT:0x80010105(RPC_E_SERVERFAULT))。

 

解决方案:

将Excel中的PDF COM加载去掉就可以了。


作者:菜鸟程序杜,发布于:2018/11/09
原文:https://www.cnblogs.com/dulianyong/p/9933491.html