我在开发服务器上安装了CruiseControl.NET和VisualSVN Server。而不是在IIS上运行CruiseControl.NET Web Dashboard,我想在VisualSVN Sever安装的Apache上运行它。我偶然发现了Stackoverflow上的this question,它帮助了很多。
我在“C:\ Program Files \ VisualSVN Server \ conf”文件夹中的http-custom.conf文件中有以下配置。
LoadModule aspdotnet_module bin/mod_aspdotnet.so
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo
<IfModule mod_aspdotnet.cpp>
AspNetMount /ccnet "C:/Program Files/CruiseControl.NET/webdashboard"
AliasMatch /ccnet/(.*\.aspx.*) "C:/Program Files/CruiseControl.NET/webdashboard/default.aspx"
Alias /ccnet/ "C:/Program Files/CruiseControl.NET/webdashboard/"
<Directory "C:/Program Files/CruiseControl.NET/webdashboard">
Options FollowSymlinks ExecCGI
# Order allow,deny
# Allow from all
DirectoryIndex default.aspx
</Directory>
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
# Order allow,deny
# Allow from all
</Directory>
</IfModule>
这很好,除了http://localhost/ccnet(注意缺少的尾部斜杠)没有显示CruiseControl.NET仪表板,而http://localhost/ccnet/则表示。
另外,我必须在两个目录部分中注释掉Order和Allow指令。如果我取消注释这4个注释掉的指令中的任何一个,VisualSVN服务就无法启动。
这是怎么回事?
VisualSVN Server.exe(实际上是httpd.exe)报告版本号为2.2.13.0,mod_aspdotnet.so报告版本号为2.2.0.2006。
答案 0 :(得分:2)
使用mod_aspdotnet是一个坏主意,因为它不支持三年并且有一些严重的错误。 mod_aspdotnet使用不同的设置编译并且可能与VisualSVN Server二进制文件不兼容的另一个坏处。
我建议您在IIS上运行CruiseControl.NET,然后将代理请求从VisualSVN Server转发到IIS。 VisualSVN Server分发中已提供所有必需的模块。只需将以下行添加到httpd-custom.conf(假设您在端口8080上运行IIS)
LoadModule proxy_module bin/mod_proxy.so
LoadModule proxy_http_module bin/mod_proxy_http.so
ProxyPass /ccnet http://localhost:8080/ccnet
ProxyPassReverse /ccnet http://localhost:8080/ccnet
答案 1 :(得分:1)
1 /确保使用最新的mod。它的名字是mod_aspdotnet-2.2.0.2006-setup-r2.msi
2 /修改AliasMatch行,如下所示
AliasMatch "^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)" \
"C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
3 /在您的webdashboard目录中Options FollowSymlinks ExecCGI
之后添加此行
AspNet files
4 /添加Win32DisableAcceptEx on
行......我记得有一台机器已经将它嵌入......但它只是在Xp安装上,而不是Server2003或其他版本。