Getting CruiseControl.NET working under IIS7

This was painful. Here’s some tips:

  1. Ensure that Windows Firewall Allows the ports used by CruiseControl.NET (the web port [80] and remoting port [21234]) open. Start > Settings > Control Panel > Windows Firewall > Allow a program through Windows Firewall > Exceptions Tab.

    For the Web Port, ensure that World Wide Web Services is checked.

    For the reporting port (used by CCTray) click Add port > Name: <Whatever you want> > Port number: 21234 > Protocol: TCP > Click OK. 

    Note: Don’t try and turn off Windows Firewall if you are connecting to the machine remotely. It’ll disconnect you. Don’t do it.

  2. Allow Double Escaping in IIS7 by issuing the following command (see MS KB Article 942076):
    Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
  3. If you just installed the base IIS without any additional features, you’ll likely get an HTTP Error 500.19.

    To resolve this, ensure you turn on ASP.NET Application Development Feature for IIS. Control Panel -> Program and Features -> Turn Windows Features On
    or Off -> Internet Information Services -> World Wide Web
    Services -> Application Development Features -> check/uncheck
    ASP.NET (Thank you advapi for this article).

  4. Oh… and… yeah.. the default installation uses a vbs script to create the ccnet virtual directory. This didn’t work for me. Manually creating the Virtual Directory in IIS and then promoting it to an application did.


3 thoughts on “Getting CruiseControl.NET working under IIS7

  1. J, have you ever tried TeamCity? It has a free licence whose only limitation is on using up to 3 build agents at the same time (I’ve never needed more than one build agent anyway).I really think you should try it.

  2. Thanks for the tips. Knowing how someone else did it (with a check list) is a nice find.For #1……I’m actually more of a command line person… makes documentation a little easier IMHO.Here are the command line calls for creating the open port:(XP/2003)netsh firewall set portopening TCP 21234 "CruiseControl.NET Client Remoting"(Vista/2008)netsh advfirewall firewall add rule name="CruiseControl.NET Client Remoting" dir=in action=allow protocol=TCP localport=21234See: more options if needed.

  3. Awesome!! Thanks for that Sloan!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s