如何配置Apache以使用mod_aspdotnet运行CruiseControl.NET仪表板

时间:2010-07-07 20:36:33

标签: apache cruisecontrol.net visualsvn-server

我在开发服务器上安装了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。

2 个答案:

答案 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或其他版本。