views:

1541

answers:

5

I'm trying to get cc.net dashboard running on a build machine that also has apache on it.

I've tried installing mod_aspdotnet as described here. I can run the sample aspx page, but I am unable to get cc.net to run. Is there some magic I need to do?

For what it's worth, http://localhost/ccnet manages to redirect me to http://localhost/ccnet/ViewFarmReport.aspx but that gives me a 404 error.

Below is the relevant httpd.conf section:

#asp.net
LoadModule aspdotnet_module "modules/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> 
  # Mount the ASP.NET /asp application
  AspNetMount /ccnet "C:/Program Files/CruiseControl.NET/webdashboard"
  #/SampleASP is the alias name for asp.net to execute

  # Map all requests for /asp to the application files
  Alias /ccnet "C:/Program Files/CruiseControl.NET/webdashboard"
  #maps /ccnet request to "C:/Program Files/CruiseControl.NET/webdashboard"
  #now to get to the /ccnet type http://localhost/ccnet
  #It'll redirect http://localhost/ccnet to "C:/Program Files/CruiseControl.NET/webdashboard"

  # Allow asp.net scripts to be executed in the /SampleASP example
  <Directory "C:/Program Files/CruiseControl.NET/webdashboard">
    Options FollowSymlinks ExecCGI
    Order allow,deny
    Allow from all
    DirectoryIndex index.htm index.aspx default.aspx
   #default the index page to .htm and .aspx
  </Directory>

  # For all virtual ASP.NET webs, we need the aspnet_client files
  # to serve the client-side helper scripts.
  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>
#asp.net
A: 

I thought I was the only one in the world trying to get such a setup working.

I fixed this by adding the line: AspNet Files Directories Virtual

  <Directory "C:/Program Files/CruiseControl.NET/webdashboard">
    Options FollowSymlinks ExecCGI
    AspNet Files Directories Virtual
    Order allow,deny
    Allow from all
    DirectoryIndex index.htm index.aspx default.aspx
   #default the index page to .htm and .aspx
  </Directory>

I also card-coded the path to my dotnet framework, but I'm not sure if that is necessary:

<Directory "C:/Windows/Microsoft.NET/Framework/v2.0.50727">
    Options FollowSymlinks
    Order allow,deny
    Allow from all
</Directory>
The "AspNet Files Directories Virtual" portion helped. The webdashboard now shows up. But clicking on the project link results in a 404 error.
Adam Tegen
It's not necessary to hard-code the dotnet framework, but it *is* necessary to use Adam's AliasMatch line.
Frank Shearar
+1  A: 

I needed to add both:

  • AliasMatch /aspnet_client/system_web/(\d+)(\d+)(\d+)(\d+)/(.) "C:/Windows
  • AspNet Files Directories Virtual

See xml:

<IfModule mod_aspdotnet.cpp> 
  # Mount the ASP.NET /asp application
  AspNetMount /ccnet "C:/Program Files/CruiseControl.NET/webdashboard"

  #maps /ccnet request to "C:/Program Files/CruiseControl.NET/webdashboard/default.aspx"
  AliasMatch /ccnet/(.*) "C:/Program Files/CruiseControl.NET/webdashboard/default.aspx" 

  # Allow asp.net scripts to be executed in the /SampleASP example
  <Directory "C:/Program Files/CruiseControl.NET/webdashboard">
    Options FollowSymlinks ExecCGI
    AspNet Files Directories Virtual
    Order allow,deny
    Allow from all
    DirectoryIndex index.htm index.aspx default.aspx
   #default the index page to .htm and .aspx
  </Directory>      

  # For all virtual ASP.NET webs, we need the aspnet_client files
  # to serve the client-side helper scripts.
  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>
Adam Tegen
+2  A: 

This is what I've done, inspired by Adam's answer:

AliasMatch /ccnet(.*\.aspx.*) "C:/Program Files/CruiseControl.NET/webdashboard/default.aspx" 
Alias /ccnet/ "C:/Program Files/CruiseControl.NET/webdashboard/

Try match all the .aspx files to the webdashboard application, otherwise just pull stuff off the filesystem.

I now have working css, images, application stuff, CCTray download link.

Frank Shearar
A: 

Frank's answer worked for me (once I realized that the order matters). Call AliasMatch first, apparently Alias resolution occurs in the order listed in the .conf file and /ccnet matches before /ccnet(..aspx.).

Mark
A: 

+1, it works perfectly by adding the flollowing line before the Alias line

AliasMatch /ccnet(.*\.aspx.*) "C:/Program Files/CruiseControl.NET/webdashboard/default.aspx"

thx for your help guys !

TridenT