环境:win7 64位 WPS Office 个人版 2013
使用WPS的API转换PDF,在程序中运行正常,但是一旦发布为windows服务,则一直有类似下面的错误提示:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-4B30-A977-D214852036FE} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
网上查了很久,综合方法如下:
1、代码生成平台改为X86; 测试结果:错误依旧,无效
2、更改WPS版本(个人版、商业版); 测试结果:错误依旧,无效
3、更改DCOM配置中的权限,登陆用户; 测试结果:错误依旧,无效
4、更改WPS版本为WPS2010; 测试结果:转换正常,成功
原因:WPS2013将注册表信息保存在CurrentUser下,而WPS2010默认是选择所有人的,写到LocalMachine节点下
无法理解的是:我是用administrator用户登陆win7,按理就算当前用户,而windows服务登陆用户也是系统用户,不应该出现这种错误,但实际上还有这种错误,所以还在研究中……