怎么样处理DrCom上网客户端与Apache冲突的问题?
怎么样处理DrCom上网客户端与Apache冲突的问题?
在WinXP SP2中DrCom上网客户端与Apache冲突:
在WinXP SP2中Apache表现为占用30-80%的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.reg和Drcom.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
注意:以上文件要放再同一文件夹下。由于Apache同SP2也又冲突,所以要在TCP/IP中关闭LMHOSTS查询。(ping 127.0.0.1 -n 25是为了延时25秒,可以更具你的机器的具体状况设置)