服务热线:

4006-6500-28

新闻资讯
联系我们

电话:400-665-0028


您当前位置:首页 > 新闻资讯  > 知识学习 > 正文知识学习
解决打开金蝶BOS万能报表工具报错并且不能切换账套或切换账套卡死 …
添加时间:2023-2-23

问题描述:

1.  完成BOS万能报表站点K3NetSite配置后,双击打开BOS万能报表工具打开登录界面过程非常慢(大概3~5分钟);

2.  而且会弹出一个错误提示框“无法从传输连接中读取数据:连接已关闭。”

3.  关闭提示窗后登录界面可以显示,但是账套信息获取不到,切换组织机构则没有反应直接卡死,或者也会提示“无法从传输连接中读取数据:连接已关闭。”有时候也会提示“远程主机强迫关闭了一个现有的连接。”


问题分析:

1.  根据描述,首先分析为是否数据库连接不上。经过确认,客户是数据库、中间层、客户端都在一台计算机上部署的。那么在OS万能报表的登录设置中将IP地址改为127.0.0.1,类似于访问本机进行测试。结果现象一样的报错。

2.  看看是否其它站点访问是否正常?K3主控台是否访问正常?确定是否数据连接存在问题。但是测试结果是K3主控台和EBOS平台都可以正常访问,并进行单据操作也是正常的。说明数据库端口也没有问题。

3.  然后,根据切换账套没有反应,打开任务管理器。查看一下资源是否存在占用问题。发现存在360进程占用CPU较高不下(其实应该一开始先怀疑一下是不是有开始杀毒软件什么的。但是K3主控台又能正常运行。就没有往这方面想。)此时如果强制将万能报表的进程结束掉,CPU占用率很快就下来了… 此时怀疑是不是360造成的。

4.  根据上一步分析,尝试先将360杀毒软件关闭掉。然后重新测试。惊奇的发现,真的好了…打开BOS万能报表也非常的快(3秒钟左右),而且登录界面切换组织机构能带出对应的账套;切换账套进行登录也都正常啦!!!

5.  然后再将360杀毒软件开启,重新反复多次测试。确定就是万能报表通过HTTP请求数据库取数被360杀毒软件拦截的原因。

    从上述报错的详细信息来看,只能看出是数据库连接被强制关闭啦。找不到其它信息…

6.  尝试将BOS万能报表工具应用程序Kingdee.K3.BOS.ReportIDE.exe 加入到360的信任列表中(即加入白名单),测试还是不行;

7.  然后测试将K3NetSite站点目录..\Kingdee\K3ERP\K3NetSite\和万能报表主程序文件所在路径..\Kingdee\K3ERP\K3NetClient\目标都加入到白名单,测试发现还是报错;

8.  加入白名单配置没有作用,然后尝试将360的一些安全防御措施先关闭试试。发现关闭之后还是没有效果。

9.  怎么办呢?再测试分析看看,然后发现有时候报错信息又不一样。如下图,报错来源居然是Kingdee.K3.PUBLIC.COMMON,难道跟这个组件有关系?

搜索这个组件所在目录,将这些目录都加入到信任列表。结果测试还是不行。

10. 测试到这个程度真是想不到办法啦,端口是否占用也分析了。没有问题,数据库也尝试直接登录了也没有问题。那么原因是什么呢?

11. 客户是购买了360企业版(360安全网管版专用版),会不会是360这个版本有一些特殊的拦截操作,还是加入白名单也有问题?只能建议客户明天先咨询一下360服务,看看这个白名单的拦截规则是什么?

12. 分析至此,应该是没有什么办法了。此时客户给出建议说想再尝试一下。能否将这个报错的来源组件也直接加入到白名单呢?那就试试。结果还真是出现了意想不到的结果。居然可以啦!!

13. 真是折腾,已经将整个目录都加入到白名单了,为何还是会扫描?

而直接将..\Kingdee\K3ERP\K3NetClient\路径下 Kingdee.K3.PUBLIC.COMMON.dll 和 Kingdee.K3.PUBLIC.CommonService.dll 两个组件加入到信任模式后,就可以啦!!有点说不过呢。

 算了,不折腾啦!!原因就肯定是数据库请求被360拦截啦!需要将被拦截的组件加入到白名单即可。


解决方案:

根据上述分析结果,是BOS万能报表通过Kingdee.K3.PUBLIC.COMMON.dll 组件发起了数据库连接请求,此操作被360杀毒软件拦截啦!

解决方案就是将..\Kingdee\K3ERP\K3NetClient\路径下的Kingdee.K3.PUBLIC.COMMON.dll 和 Kingdee.K3.PUBLIC.CommonService.dll两个组件加入到白名单即可。