怎么样处理DrCom上网客户端与Apache冲突的问题?

怎么样处理DrCom上网客户端与Apache冲突的问题?

WinXP SP2DrCom上网客户端与Apache冲突:

WinXP SP2Apache表现为占用3080%的CPU,不提供服务,狂写错误文件。
错误报告:

(OS 10022)提供了一个无效的参数。 : Child 908: setup_inherited_listeners(), WSASocket failed to open the inherited socket.

网上的解决方法多为在TCP/IP中取消LMHOSTS,有效!但是点击DrCom上网客户端,就会要求重启,之后故障依旧。

经监控DrCom上网客户端安装过程

发现:

安装Drcom前后修改了注册表两处重要位置:

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/WinSock2/Parameters/
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WinSock2/Parameters/

基本思路:

关机时导入没装DrCOM时的注册表并且写入成功关机文件;开机Apache以服务启动后如果关机时写入的文件存在则导入DrCOM安装后的的注册表。文件不存在表示非正常关机,立即重启。(写入文件是为了防止非正常关机时未导入original.reg

做法:

分别导出Drcom安装前后修改的两处注册表项original.regDrcom.reg。然后在gpedit.msc加入:

关机脚本

*1.bat 内容

@echo off

regedit /s C:/*/original.reg

echo shutdown_well >> C:/*/shut.succ

开机脚本

*2.bat 内容

@echo off

if not exist C:/*/shut.succ shutdown -r -t 6 -c "由于前次的非正常关机,系统必须立即重启"

ping 127.0.0.1 -n 25

if exist C:/*/shut.succ regedit /s C:/*/Drcom.reg

if exist C:/*/shut.succdel /s C:/*/shut.succ

注意:以上文件要放再同一文件夹下。由于ApacheSP2也又冲突,所以要在TCP/IP中关闭LMHOSTS查询。(ping 127.0.0.1 -n 25是为了延时25秒,可以更具你的机器的具体状况设置)

然后Apache就可以做为服务启动了。而且不会产生错误报告。DrCom上网客户端也完全正常。