1 Automation错误(一)主控台登录报错
1.1问题描述
打开“金蝶 K/3 主控台”,弹出报错“异常错误[-2147023566] Automation 错误”,这是系统无法捕获的错误(如图 1),此时单击【确定】后无法正常打开登录界面,无法使用 K/3系统。
1.2原因分析
造成 Automation 错误的成因是多方面的,常见的有 WINDOWS 操作系统环境、系统控件损坏,或 K/3 组件调用问题,这些都有可能导致问题的出现。
首先我们了解一下 K/3 底层的运行环境,如图 2:
在 K/3 系统中创建远程组件是使用 DCOM 机制,而 DCOM 依赖于 RPC 协议。用户登录主控台需要与服务器进行通讯,返回组件调用,方可登录。
出现 Automation 错误,我们要确定问题原因是出现在中间层还是客户端,可归纳为以下
两种情况:
1、 所有客户端及服务器均报错;
2、 部分客户端报错,其它客户端及服务器均正常。
分析:如果有正常使用的客户端,说明中间层组件是正常的;如果所有客户端及服务器均报错,需先检查中间层组件是否正常。
1.3解决方案
1.3.1部分客户端报错
可尝试下列操作:
(1)、检查是否启用本地COM
依次打开【控制面板】→【管理工具】→【组件服务】,如图 3,查看组件服务中【我的电脑】,右键【属性】:
在打开的属性窗口中,单击【默认属性】页签,检查是否勾选【在此计算机上启用分布式 COM】选项,如图 4:
勾选此选项
(2)、检查服务
打开【控制面板】→【管理工具】→【服务】,检查 RPC 服务是否启动,动态 COM+是否启动,DTC 服务是否启动,如图 5、图 6:
(3)、 检查是否设置同名同密码用户
工作组网络环境下,K/3 客户端与中间层要正常连接,需要设置同名同密码用户,将客户端电脑开机的用户名和密码要添加到中间层服务器的本地用户中,即在中间层服务器的【计算机管理】下面的【本地用户和组】的用户,用户列表中是否有客户端开机有用户名,密码是否一致;
注意,如果客户端与服务器的网络环境是域环境,忽略此步骤即可。
(4)、 检查防火墙及杀毒软件
尝试关闭防火墙,包括操作系统控制面板下的 Windows 防火墙;是否安装或升级过杀毒软件,可以暂时退出杀毒软件尝试。
(5)、 检查中间层服务器设置
打开客户端的【远程组件配置工具】,检查【中间层服务器】是否设置正确,单击【测试】按钮,是否可以测试通过,如图 7:
如果开始测试就提示组件无法正常工作,则说明与服务器通讯不成功,如图 8:
如果测试不通过,请参照文件《客户端远程组件测试不通过的解决方法》处理。
注意:使用到的模块测试通过即可,在测试的过程中对于不使用的模块,如结算中心、Web 等测试不通过是正常情况,忽略即可。最后的测试结果如图 9:
(6)、替换客户端的COM组件
替 换 安 装 路 径 下 的 COM 组 件 ( V11 及 以 上 版 本 的 默 认 路 径 C:\Program Files\Kingdee\K3ERP,V11 以前版本的路径 C:\WINDOWS\system32),操作方法是:搜索*.VBR 组件,复制正常使用客户端上的组件,替换到报错客户端,再重新打开远程组件配置工具,完成配置。
(7)、重启计算机
(8)、重装MDAC(在 K/3 资源光盘中的 MDAC28,双击 MDAC_TYP.EXE 安装)
(9)、 卸载后,重新安装客户端
1.3.2所有客户端报错
如果所有客户端及服务器的客户端都报错,那么问题可能出现在 K/3 中间层服务器。
首先检查 K/3 服务器是否有电脑用户登录到操作系统。因为在默认情况下,用户登录到操作系统后,K/3 中间层的组件包才可以启动,客户端才能正常访问。如果服务器开机没有登录,而是处于需要按 Ctrl+Alt+Del 界面或者处于输入密码的界面,这种情况下,开机后电脑用户未登录到操作系统桌面,也会引起上面的报错。
所有客户端及服务器本机的客户端均报错,请先在 K/3 中间层服务器上,按照 1.3.1 节中的前 4 步检查,如果均正常,请尝试下列操作:
打开金蝶 K/3 账套管理,单击【确定】是否可以正常登录。
(1)、 如果不能登录,请重新注册中间层组件,依次打开【程序】列表中的【金蝶 K/3】→【金蝶 K/3 服务器配置工具】→【中间层组件注册】,重新注册中间层组件。
(2)、 如果账套管理可以正常使用,建议在服务器上修复安装 K/3 软件。
2 Automation错误(二)部分功能报错
2.1问题描述
经常遇到使用 K/3 的过程中出现 Automation 错误,这种情况下,可以正常登录“金蝶 K/3主控台”,但是操作部分功能的过程即会出现 Automation 报错,例如打开单据、保存单据、选择过滤条件等报 Automation 错误,如图 10:
2.2原因分析
由于 K/3 主控台可以正常登录,并且大多数功能可以正常使用,说明与中间层间的通讯是正常的。而在个别功能的操作过程中出现 Automation 报错,最可能是原因是组件损坏或组件丢失。
这种情况下,可按下面的步骤排查,如图 11 所示:
分析:首先确定是否是环境问题,即排除数据问题。对于环境问题,需确定是否有正常使用的客户端,来确定问题出现在客户端还是服务器端。
2.3解决方案
首先确定是否有正常使用的客户端,如果没有正常使用的客户端,即所有客户端及服务器本机客户端均报错,请尝试重新注册中间层组件。如果只有部分客户端报错,可利用如下工具进行调试:
(1)、 KdMainDbg 组件跟踪
K/3 从 10.2 版本开始,金蝶客户端的安装目录中附带了一个功能强大的调试工具,该工具可以跟踪 K/3 主控台 COM+组件的运行情况。
使用的方法是:在 K/3 安装路径下(默认是 C:\Program Files\Kingdee\K3ERP)找到 KdMainDbg.exe ,即为跟踪工具。
注意:要使用此工具,请先退出本机 K/3 主控台窗口。双击 KdMainDbg.exe 后,首先弹出提示,如图 12:
单击【确定】后,出现【客户端运行诊断工具】窗口,如图 13:
紧跟着主控台登录界面弹出:
这样,跟踪工具就打开了。在前面的主控台登录,进行 K/3 操作,后面窗口就会产生组件跟踪记录,当主控台操作报错时,可观察跟踪工具中的记录。记录中为黑色、蓝色字体表示正常,当发现有红色记录,即为跟踪到调用出错的组件记录,【组件名称】处对应的即为有问题的组件名称。替换对应的组件,再注册即可。详细操作方法请参照文档《K3 组件跟踪工具使用简介》。
2、事件查看器
事件查看器,位于操作系统【控制面板】→【管理工具】→【事件查看器】,用于查看在“应用程序”、“安全性”和“系统”日志里记录的事件。
检查在 K/3 报错的时间,事件查看器中是否有错误记录。例如:14:37 分,K/3 操作过程中报错,事件查看器中有如下记录,如图 15:
双击打开 DCOM 明细日志,可查看描述,进行分析,关于 DCOM 的设置和修复方法请参照《事件查看器 DCOM 错误的解决方案》。
(3)、远程组件配置工具
打开远程组件配置工具,测试报错模块的组件是否正常。单击对应模块后的【测试】按钮,如图 16:
如果模块中出现组件测试不通过,说明该组件异常,如图 17:
尝试将提示的测试不通过的组件替换(对应文件的后缀名是 VBR),并重新注册。VBR 组件的注册方法,请参照《K/3 常见问题》。
(4)、执行批处理文件
K/3 调用的组件有与服务器进行通讯的组件,也有本地调用的组件。步骤 3 中的远程组件配置工具,测试的是与服务器通讯的组件,如上述方法没有找到组件错误,可以分别运行两个批处理工具,重新注册本机调用的组件,默认路径是 C:\Program Files\Common Files\Kingdee\K3 文件夹,批处理文件是:RegProduct.bat 、RegMiddleware.bat,双击执行注册。如图 18 所示:
双击文件即执行注册。注册过程需要几分钟的时间。
(5)、 TS0026 补丁
对于 K/3 V10.1 版本及以前的版本,没有 KdMainDbg 跟踪工具 ,可以使用 TS0026补丁工具进行注册,可完成客户端的组件重新注册。下载地址:http://www.kingdee.com/agentdown/ts0026.rar ,解压后双击 K3RegisterWizard.exe,执行 K/3组件注册修复。
(6)、 检查杀毒软件、防火墙等
(7)、 修复或重装 K/3 软件尝试
3 Automation错误(三)高级信息报错
3.1问题描述
运行 K/3 主控台过程中,经常出现其它的报错提示,但是描述中出现 Automation 错误的现象。例如:
(1)、 Activex 部件不能创建对象,如图 19:
图 19
单击【确定】后,又提示 Automation 错误,如图 20:
(2)、 定义的应用程序或对象错误,高级中有 Automation 错误,如图 21:
(3)、 超出内存,如图 22:
3.2问题分析
出现上述错误的情况下,与 Automation 的错误(一)、错误(二)的排查方法相同。请参照上面的问题分析。
3.3解决方案
(1)、 ActiveX 部件不能创建对象,请参照文档《ActiveX 部件不能创建对象的解决方法》。
(2)、 定义的应用程序或对象错误,请参照文档《定义的应用程序或对象错误的解决方法》。
(3)、 超出内存,可尝试下列操作:
1) 重新启动服务器;
2) 调整虚拟内存;
3) 清除临时文件:在【开始】→【运行】中,输入%temp%,单击【确定】,清除系
统临时文件,再重新启动计算机尝试。