Как настроить Apache для запуска панели инструментов CruiseControl.NET с помощью mod_aspdotnet

Я установил CruiseControl.NET и VisualSVN Server на моем сервере разработки. Вместо того, чтобы запускать CruiseControl.NET Web Dashboard из IIS, я бы хотел запустить его на Apache, который устанавливает VisualSVN Sever. Я наткнулся на этот вопрос на Stackru, и он очень помог.

У меня есть следующий конфиг в файле http-custom.conf в папке "C:\Program Files\VisualSVN Server\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 в двух разделах Справочника. Служба VisualSVN не запускается, если я раскомментирую любую из этих 4 закомментированных директив.

Что с этим?

VisualSVN Server.exe (в действительности это httpd.exe) сообщает номер версии как 2.2.13.0, а mod_aspdotnet.so сообщает номер версии как 2.2.0.2006.

2 ответа

Решение

1/ Убедитесь, что вы используете последний мод. Его имя 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/ Добавьте эту строку после Options FollowSymlinks ExecCGI в разделе каталога вашей веб-панели

AspNet files

4/ Добавить Win32DisableAcceptEx on линия... я помню, что одна машина включала его... но это было только на Xp, но не Server2003 или другой редакции.

Плохо использовать mod_aspdotnet, поскольку он не поддерживается три года и содержит некоторые критические ошибки. Еще одна плохая вещь: mod_aspdotnet скомпилирован с другими настройками и может быть несовместим с двоичными файлами VisualSVN Server.

Я рекомендую вам запустить CruiseControl.NET на IIS, а затем перевернуть запросы прокси-сервера с сервера VisualSVN на IIS. Все необходимые модули уже доступны в дистрибутиве VisualSVN Server. Просто добавьте следующие строки в ваш httpd-custom.conf (при условии, что вы используете IIS на порту 8080)

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
Другие вопросы по тегам