201204Web站点打开提示“检索COM类工厂中CLSID{…”的解决方法(陈研鑫)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web站点提示检索“检索COM 类工厂中CLSID 为 {…”的解决方法
本文概述
z本文主要以“检索COM 类工厂中CLSID 为
{4A1B2781-98FC-4F2F-9119-63E613304A5A} 的组件时失败”为案例,介绍Web 站点登录出现脚本异常时的解决方案
z本文适用于K/3所有版本,学习完本文后,可以了解人力资源WEB站点浏览时提示“检索 COM 类工厂···”的原因及解决方法
版本信息
z2012年4月22日V1.0 编写人:陈研鑫
z2012年4月26日V2.0 修改人:李伟
版权信息
z本文件使用须知
著作权人保留本文件的内容的解释权,并且仅将本文件内容提供给阁下个人使用。
对于内容中所含的版权和其他所有权声明,您应予以尊重并在其副本中予以保留。
您不得以任何方式修改、复制、公开展示、公布或分发这些内容或者以其他方式把它们用于任何公开或商业目的。
任何未经授权的使用都可能构成对版权、商标和其他法律权利的侵犯。
如果您不接受或违反上述约定,您使用本文件的授权将自动终止,同时您应立即销毁任何已下载或打印好的本文件内容。
著作权人对本文件内容可用性不附加任何形式的保证,也不保证本文件内容的绝对准确性和绝对完整性。
本文件中介绍的产品、技术、方案和配置等仅供您参考,且它们可能会随时变更,恕不另行通知。
本文件中的内容也可能已经过期,著作权人不承诺更新它们。
如需得到最新的技术信息和服务,您可向当地的金蝶业务联系人和合作伙伴进行咨询。
著作权声明著作权所有 2009金蝶软件(中国)有限公司。
所有权利均予保留。
目 录
1. 业务背景 (2)
2. 原因分析 (4)
3. 解决方案 (6)
3.1 hrmssystem.dll文件未正确注册 (6)
3.2 ebohrsvr组件包处于禁用状态 (10)
3.3 ebohrsvr组件包属性设置错误 (11)
1. 业务背景
WEB服务部件主要为金蝶K/3系统提供Web服务及人力资源系统组件服务。
Web系统的
应用只需要在服务器端配置K/3站点并进行发布,客户端就可以通过使用IE浏览器进行Web 站点访问,完成具体的业务操作。
由于系统采用B/S架构,同时Web站点需要通过调用COM+组件来正常运行,当Web站点相关的COM+组件出现异常时,就会导致所有的IE客户端无法访问Web站点,并出现各种类型的网页报错信息。
在人力资源Web站点使用过程中,最常见的一类报错提示信息为“检索 COM 类工厂中 CLSID 为 {4A1B2781-98FC-4F2F-9119-63E613304A5A} 的组件时失败”,具体报错现象分别如图-1、图-2所示。
图-1错误原因80004027
图-2错误原因80070005
从报错截图可以看出,虽然报错信息大体相同,都是来自于“检索 COM 类工厂中CLSID 为 {4A1B2781-98FC-4F2F-9119-63E613304A5A} 的组件时失败”的报错,但产生的错误原因代码不相同,分别为“80004027”和“80070005”,问题产生的根源不同,对应解决问题的方法就存在差异,本文将根据这两种报错现象分别进行介绍。
2. 原因分析
金蝶K/3的运行是以组件调用的方式,CLSID对应的是K/3组件在注册表中的注册表项名称,因此根据报错的CLSID内容,在正常使用的相同版本环境的Web服务器注册表中,可以查找到对应的组件名称。
例如当前报错信息中的CLSID为{4A1B2781-98FC-4F2F-9119-63E613304A5A},通过在相同版本且正常运行的Web服务器上的注册表中搜索,如图-3所示,可查询到存在相同名称的注册表项,并可查看到该键值的数值,引起异常的组件名称为HrmsSystem.SystemFuncs。
图-3 搜索CLSID对应的注册表项
HrmsSystem.SystemFuncs为K/3组件包ebohrsvr下的一个组件,如图-4所示,该组件包下还包含有其它组件,通过查看这五个组件的属性,可以发现这些组件均有相同的一个文件注册产生,即安装路径C:\Program Files\Kingdee\K3ERP\KDHR下的HrmsSystem.dll文件。
图-4 组件服务下的ebohrsvr组件包
图-4 组件HrmsSystem.SystemFuncs属性窗口
了解了以上产品知识之后,对于Web站点运行出现的“检索 COM 类工厂中 CLSID 为{4A1B2781-98FC-4F2F-9119-63E613304A5A} 的组件时失败”的报错,可以具体分为以下几种原因:
1.应用程序组件包丢失
当中间层服务器上部署了WEB服务部件之后,【组件服务】→【COM+应用程序】中分别会产生ebohrsvr、EboWebEscSrv以及ebowebsrv三个服务器应用程序,当再次执行【中间层组件注册】时,系统会删除这三个组件,导致hrmssystem.dll处于未注册的效果,此时站点浏览会出现错误原因为“80004027”的报错。
2.应用程序组件包状态异常
在Web服务器【组件服务】→【COM+应用程序】中,ebohrsvr组件包处于“禁用”状态,此时站点浏览也会出现错误原因为“80004027”的报错。
3.应用程序组件包属性设置错误
在Web服务器【组件服务】→【COM+应用程序】中,通过手工方式新建的ebohrsvr 组件包,默认属性中【安全】页签勾选了“对此应用程序强制进行访问权限检查”选项,新建后未取消该选项勾选。
或者更改了ebohrsvr的属性设置,在ebohrsvr组件包属性的【安全】页签中误勾选了“对此应用程序强制进行访问权限检查”选项,如图-5所示。
此时站点浏览会出现错误原因为“80070005”的报错。
图-5误勾选“对此应用程序强制进行访问权限检查”选项
3. 解决方案
引起问题产生的原因不同,对应处理的解决方案也会有所差异,下面将针对以上提出的三种可能性原因,给出对应的处理方案建议。
3.1hrmssystem.dll文件未正确注册
hrmssystem.dll文件手工注册的方法有如下三种:
1.单击【开始】菜单下的【运行】,输入“regsvr32 "C:\Program
Files\Kingdee\K3ERP\KDHR\HrmsSystem.dll"”,单击【确定】完成注册,注册成功界面如图-6所示。
输入命令中的hrmssystem.dll文件路径需要根据当前实际安装路径进行修改。
图-6使用regsvr32注册hrmssystem.dll
2.依次展开【开始】菜单下的【控制面板】→【管理工具】→【组件服务】,打开【组件服务】窗口,在【控制台根目录】下依次展开【组件服务】→【计算机】→【我的电脑】→【COM+应用程序】,右键单击【COM+应用程序】图标,依次选择【新建】→【应用程序】,选择【创建空应用程序】,单击【下一步】按钮后选择【服务器应用程序】并输入应用程序的名称,当前需创建的应用程序名称为“ebohrsvr”,继续单击【下一步】按钮后可根据需要指定应用程序的标识,然后按照默认直至完成。
创建过程依次如图-7、图-8、图-9所示。
图-7选择创建空应用程序
图-8创建应用程序命名
图-9设置应用程序标识
创建应用程序完成后,需要对组件包的属性进行设置,在COM+应用程序列表中右键单击【ebohrsvr】选择【属性】菜单,在【安全】页签,取消“此应用程序强制进行访问权限检查(E)”选项的勾选,并选择“仅在进程级别执行访问权限检查(P)”选项,更改后单击【确定】按钮保存即可,如图-10所示。
图-10ebohrsvr组件包属性【安全】页签
依次展开【ebohrsvr】→【组件】,同时打开K/3的安装目录,查找到安装路径C:\Program Files\Kingdee\K3ERP\KDHR\下的HrmsSystem.dll文件,将该文件选中后拖拽到【组件】的空白窗口中,系统会自动产生5个组件图标,此时就完成了文件注册,具体如图-12所示。
图-12手工注册ebohrsvr组件包
3.依次单击【开始】菜单下的【所有程序】→【金蝶K3】→【金蝶K3服务器配置工具】→【站点及远程组件配置工具】,在打开的【Web系统配置工具】上依次单击【下一步】→【应用】→【完成】进行站点配置发布即可,如图-12所示。
图-12站点及远程组件配置
3.2ebohrsvr组件包处于禁用状态
依次展开【开始】菜单下的【控制面板】→【管理工具】→【组件服务】,打开【组件服务】窗口,在【控制台根目录】下依次展开【组件服务】→【计算机】→【我的电脑】→【COM+应用程序】,右侧显示应用程序组件包列表。
当应用程序组件包的图标上显示红色小方块时,则表示当前组件包未启用,右键单击【ebohrsvr】图标并选择【启用】菜单,即可启动该组件包,如图-13所示。
如启动失败,需要检查组件包的属性设置,查看当前组件包的启动帐户权限是否不足,如图-14所示。
图-13启用ebohrsvr组件包
图-14ebohrsvr组件包属性启动帐户设置
金蝶知识库文档
金蝶软件(中国)有限公司客户服务中心第11页共11页 3.3ebohrsvr 组件包属性设置错误
依次展开【开始】菜单下的【控制面板】→【管理工具】→【组件服务】,打开【组件服务】窗口,在【控制台根目录】下依次展开【组件服务】→【计算机】→【我的电脑】→
【COM+应用程序】,右侧显示应用程序组件包列表。
右键单击【ebohrsvr 】图标并选择【属性】菜单,选择【安全】页签,单击取消“对此应用程序强制进行访问权限检查(E )”选项的勾选,【安全级别】选择“仅在进程级别执行访问权限检查(P )”即可,如图-15所示。
图-15ebohrsvr 组件包属性设置。