Now that I am able to work on my own independent projects, I got myself a sweet new laptop to work on but nearly two weeks since getting it I’m still going through all the hassle of installing and configuring all my favourite development tools. In my last work place I started using CruiseControl.net which is a nifty open source continuous integration tool which automates the build and testing of your various .net software projects. When working in a company you have people that take care of these sorts of things for you so I never had to play around with the server which hosted CruiseControl, all I did was check my code in and hey presto it was built, *ta-da*. Working on your own is an entirely different kettle of fish and you have to do everything yourself.
Anyway, I managed do find the CruiseControl.Net web site and downloaded the installer from sourceforge, all very nice and easy so far. The installation was simple too, just click Next a few times and there you go, its on there!
Now this is where I found the first gotcha. I am running Vista ultimate and when I went into the IIS7 manager I could see the virtual directory there and the content looked fine.
I went to view the application’s default page in the browser and I was just presented with an interesting message stating that I had not configured the application properly and suggested that I checked the web config for the following http handlers
<add verb="*" path="*.aspx" type="ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler, ThoughtWorks.CruiseControl.WebDashboard"/> <add verb="*" path="*.xml" type="ThoughtWorks.CruiseControl.WebDashboard.MVC.ASPNET.HttpHandler, ThoughtWorks.CruiseControl.WebDashboard"/>
It also mentioned that I should check the version of .net on the application and that it was configured to run a .net application. Neither of these looked incorrect but having looked around on the net for a little bit I discovered that it was all to do with the App Pool the application was running on.
It seems that in IIS7 there is a Classic .Net App Pool to which the ccnet application needs to be assigned. To do this you have to follow these steps.
- In IIS7 manager, right click on the ccnet application directory
- Select Manage Application > Advanced settings
- In the dialog that pops up, you will probably see the Application Pool setting is set to DefaultAppPool. To change this you click the ellipsis button to select a new app pool.
- Select the Classic .Net AppPool, click ok and then ok again.
Now if you refresh the page you will see the application loads and the CCNET homepage is displayed.
This is where I got the second gotcha as the error message on the screen clearly shows it could not connect to the CruiseControl.Net server.
This is resolved simply by starting the server up. In Vista, hit the start menu and type cruise in the search box and you should see the CruiseControl.Net server come up.
All you need to do it click this and a command window pops up. Do not close this window because the server will stop.
And refreshing the statuses, you can see the web app is running fine.