Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / IIS

WCF Hosting in IIS Simplified

1.00/5 (1 vote)
22 Jun 2014CPOL3 min read 10.8K  
WCF Hosting in IIS Simplified

It’s part 3 in the series of WCF Hosting Tutorials and we are going to implement how we can host a WCF Service in IIS (version 5 or 6)? We have already implemented the following in the series:

Microsoft introduced WCF (Windows Communication Foundation) in .NET Framework v 3.0 with lots of exciting features but the most exciting feature among all was, how it’s different from ASMX services or ASP.NET Web Services? or what’ additional things it provides as compared to ASMX services?

Primary difference is that ASMX or ASP.NET web service is designed to send and receive messages using SOAP over HTTP only. While WCF can exchange messages using any format (SOAP is default) over any transport protocol (HTTP, TCP/IP, MSMQ, NamedPipes, etc). Another WCF Tutorial has detailed discussion on WCF Vs ASMX here.

So, if we are hosting a WCF Service in IIS (version 5 or 6), only HTTP option is available as transport protocol. In later versions of IIS (Internet Information Services), we an use any other protocol (TCP/IP, MSMQ, NamedPipes, etc.) as transport protocol.

Practical Guide to WCF RESTful Service

As we already know that in order to host a WCF Service, we need a managed process. In case of IIS (Internet Information Services), it provides the host process and launches the process as the first request reaches server.

Now, let’s first create a WCF service and later host in IIS.

Create a StudentService Class Library

We have already created a StudentService Class Library project while implementing WCF Self Hosting Tutorial. In order to make things consistent here, we will use the same service, so please go through step 1 of that WCF Tutorial for creating a WCF Service.

WCF Hosting in IIS

So in order to host our WCF Service in IIS, follow the simple step by step approach.

  1. Add a Website to our Solution. Choose “ASP.NET Empty Web Site” template. For Web location, choose “HTTP” instead of “File System”, provide the path and press “OK” button.

    WCF Hosting in IIS

  2. Add Reference of StudentService project to our website, i.e. StudentIISHost.

    WCF Service Reference

  3. Add Reference of System.ServiceModel to website.
  4. Add a new .svc file to our website project as:

    WCF Service

    WCF Service Host

    In the above code, we are pointing Service to StudentService in ServiceHost.

  5. Updated configuration for System.ServiceModel in web.config will be as follows:
    XML
    <system.serviceModel>
        <behaviors>
             <serviceBehaviors>
                    <behavior name="StudentServiceBehavior">
                               <serviceMetadata httpGetEnabled="true"/>
                               <serviceDebug includeExceptionDetailInFaults="false"/>
                    </behavior>
             </serviceBehaviors>
        </behaviors>
        <services>
                    <service behaviorConfiguration="StudentServiceBehavior"
                                 name="StudentService.StudentService">
                                <endpoint address="http://localhost/StudentIISHost/MyStudentHost.svc"
                                 binding="wsHttpBinding"
    
                                                       contract="StudentService.IStudentService">
                                         <identity>
                                                   <dns value="localhost"/>
                                         </identity>
                                </endpoint>
                               <endpoint address="mex"
    
                                                      binding="mexHttpBinding"
    
                                                      contract="IMetadataExchange"/>
                    </service>
         </services>
     </system.serviceModel>
    
  6. Access the hosted WCF Service, i.e., StudentService using following path:
    http://localhost/StudentIISHost/MyStudentHost.svc

    WCF Service Running

Hopefully, this WCF Tutorial will help to understand implementation for hosting a WCF Service in IIS (Internet Information Service).

Other Related Articles

The post WCF Hosting in IIS Simplified appeared first on WCF Tutorial.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)