Thursday, May 6, 2010

Configure WCF on IIS7 and Windows Server 2008

Last week I needed to migrate a C# .Net WCF (Windows Communication Foundation) application from:
  • Microsoft Windows Server 2003 machine running IIS version 6

    TO
  • Microsoft Windows Server 2008 machine running IIS version 7
I have never had the opportunity to work with Server 2008 or IIS7 before so naturally I ran into a few bumps in the road. Hopefully this article will save you a few hours of head pounding that I went through.

Problem #1:
IIS not recognize my SVC service files!

When I tried to load up my service file:
http://www.localhost/MyTestService/service.svc

I received the following error message:

HTTP Error 404.3 - Not Found

The page you are requesting cannot be served because of the extension configuration. If the page is a scr

ipt, add a handler. If the file should be downloaded, add a MIME map.



You can see the reason behind the problem if you open up the IIS Manager:
Start -> Administrative Tools -> Internet Information Services Manager

And then click the Default Web Site (or your website instance) and in the Feature View open the Handler Mappings.


When you scroll through the list of Handler Mappings you will notice that there are no listings for the SVC extension.

Its hard to run a WCF web service on IIS if the web service SVC extension is not being recognized! I already had the .Net framework 3 installed on the Server 2008 machine so it did not make sense to why it was not working. I tried to manually add the SVC extension to the MIME maps but that did not work.

Here is how I was able to resolve this issue:

  1. I opened up the Programs and Features of the Windows Server 2008.
    Start -> Control Panel -> Programs and Features

  2. I clicked on the Turn Windows Features on or off link on the left hand side of the Programs and Features window.

  3. The Server Manager window appeared.
    So next I selected the Features tree branch and clicked the Add Feature button on the right side of the window.

  4. The Add Features Wizard window appeared.
    I expanded the tree branch labeled:
    .Net Framework 3.0 Features

    And then the tree branch labeled:
    WCF Activation

    I checked off all of the Check Boxes under WCF:
    HTTP Activation Non-HTTP Activation



  5. Finally I clicked the Install button. After several minutes of installing away I was ready to test if my changes had worked.

  6. You can insure that the SVC handler mapping is properly configured by opening up the IIS Manager:
    Start -> Administrative Tools -> Internet Information Services Manager

    And then click the Default Web Site (or your website instance) and in the Feature View open the Handler Mappings.

    If you scroll down the list you should see the SVC handlers have been configured.






Hopefully this will help someone to overcome this issue with a clean Server 2008 and IIS7 installation... or at the very least it will help to remind me how I got it working the next time I need to handle this.

About Synergist Software
Synergist Software is a Calgary, Alberta (Canada) based software company focused on Rich Internet Application (RIA) development.
Please visit us at:
http://www.synergist.ca

No comments:

Post a Comment