情境:
给某单位实施了一个项目,我们把Web服务器部署在防火墙后面,防火墙采用了端口映射,把9333这个端口映射到我们的Web服务器9333端口(理论上可以不修改采用原来的80端口,但不修改的话,里面发布的一个WebService,Flex调用的时候会出现TimeOut的问题,原因未明)
因为对外只有一个9333端口给我们的IIS开放,但现在又想在上面建一个Svn Server来给我们做版本控制,于是用了ARR反向代理,把http://IP:9333/svn/这个请求Rewrite到Web服务器的8080端口(VisualSvn server),于是外网的http://IP:9333/svn/所有请求会被Rewrite到内部的8080端口的VisualSvnServer
配置好ARR后,外网IE打开http://IP:9333/svn/,提示输入用户名和密码,证明已经Rewrite到VisualSvn Server上,但导入代码的时候,TortoiseSvn出现了下面错误:
找不到路径 “/svn/FISIM/!svn/wrk/47104efb-751b-f64b-85b9-698a0454c3e4/SQLDAL/SQLDAL.csproj”
估计原因有两个:
1)IIS没配置好
2)VisualSvn server没配置好
试验了一下,在服务器本地可以导进VisualSvn Server,那么应该是IIS的问题
想起了以前IIS出现过的一些问题,例如某些后缀名的文件,明明存在,但通过Url请求后都会返回Not found,估计是IIS阻止了某些特定的后缀文件,例如上面的.csproj
后来研究了一下,采用以下步骤就解决了问题:
在IIS7的“处理程序映射”里,添加一个映射,路径是svn/*,可执行文件为System32\inetsrv\isap.dll 问题解决!