[转载]Win2003上SVN无法使用解决方案_天真浪子的空间_百度空间.
我记得曾经在Win2003上成功配置过SVN,详见http://hi.baidu.com/braveboyx/blog/item/efd19696efe63914d31b707a.html。然而就当成功没几天时,突然发现SVN无法使用了,第次都是SVN服务启动了,但就是登陆不了SVN服务器,并且占用资源也很大,于量在研究了几天无果时选择了VSS,详见http://hi.baidu.com/braveboyx/blog/item/f813ed01b034bf82d53f7c0f.html。并且用VSS完成了上学期的一些项目实践。但是SVN那么好的一款源代码控制器不能用多可惜,但一直找不到解决方案,所以把SVN服务一直禁止了。
直到这次项目实训,又进入编码阶段,我再选择用VSS还是SVN呢。VSS用过但总觉得没有去年暑假开发时用SVN来的舒服,并且VSS只能在一台机器上签出签入,否则将永远处于占用状态,并且没有日志功能,除非自己配置,详见http://hi.baidu.com/braveboyx/blog/item/e62a40d844baebd1b7fd4808.html。
昨天再次把SVN拿到实验室的XP环境下配置,一点问题也没有,为实训提供了方便。可是我双重新思考为什么在Win2003下就不行。于是研究了一下。发现症状:1.SVN Server占用CPU资源很高,2.由于SVN是开机自动启动,于是SVN日志满了,发现错误为:Too many errors in select loop. Child process exiting.
(OS 10038) 在一个非套接字上尝试了一个操作。
进一步考虑到我用的SVN服务器为Visual SVN Server,它集成了Apache和Subvision,并且上学期末学习PHP时也遇到Apach服务器开不了,CPU资源占用高的问题,于是找到当时的解决方案,详见:http://hi.baidu.com/braveboyx/blog/item/a2cbad33bed243a35fdf0eca.html和http://hi.baidu.com/braveboyx/blog/item/55e80c97634274037af48051.html。
找到了原因,问题自然就解决了,现在在Win2003下SVN也完全恢复正常了。我的解决过程为:
第一、找到VisualSVN Server的安装目录,下面的conf文件夹下有httpd.conf文件,打开后在文件最后加入:
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild 10000
Win32DisableAcceptEx
</IfModule>
第二、运行netsh winsock reset命令,可以不重启电脑。
完成这两步后重启Visual SVN Server服务器后,发现一切正常了。
说白了就是Apache问题,Apache在Windows 2003上永远会有占用CPU高,上面方法可以解决,还有就是WinSock的问题。