In This article we are going to see hosting a WCF application in various ways.
1. Self Hosting
2. IIS
Self Hosting
After developing the WCF application, It should be hosted so now we are currently see how we are going to Host the application as Self Hosted.
1. Self Hosting
2. IIS
Self Hosting
After developing the WCF application, It should be hosted so now we are currently see how we are going to Host the application as Self Hosted.
- Open a Visual studio 2008 and above 2010.
- Create a console application .
- Add Reference "System.ServiceModel"
class Program
{
static void Main(string[]
args)
{
Uri
httpUrl = new Uri("http://localhost:8090/Service/Calculator"); // Hosting Url
using
(ServiceHost host = new
ServiceHost(typeof(CalculatorService.Service1),
httpUrl))
{
host.AddServiceEndpoint(typeof(CalculatorService.IService1),
new WSHttpBinding(),
"");
ServiceMetadataBehavior
smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
host.Open();
Console.WriteLine("Service is host");
Console.WriteLine("Host is running... Press any key to stop");
Console.ReadLine();
}
}
}
Press F5 to host the WCF service..
Output
Above image shows that WCF service is self hosted.
Now launch the service by the following URL http://localhost:8090/Service/Calculator
IIS HOSTED
Hosting the WCF service application in IIS , Before hosting check the web.config file for the binding, end points,and behaviour information for example let we consider a sample of binding in Web.config
Web.Config
<system.serviceModel>
<services>
<service name="CalculatorService.Service1"
behaviorConfiguration="CalculatorService.Service1Behavior">
<endpoint address=""
binding="basicHttpBinding"
contract="CalculatorService.IService1">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorService.Service1Behavior">
<!-- To avoid disclosing metadata information, set
the value below to false and remove the metadata endpoint above before
deployment -->
<serviceMetadata httpGetEnabled="true"
/>
<!-- To receive exception details in faults for
debugging purposes, set the value below to true. Set to false before deployment to avoid
disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"
/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Hosting the WCF in IIS do the following steps
1. Type Inetmgr in run and press enter
2. Right click on Sites and select a Add a WebSite
2. Right click on Sites and select a Add a WebSite
3. Give a name "Calculator"
4. Select AppPool as Framework 4.0
5. In Binding select http type and port 70.
6. Select Ok.
4. Select AppPool as Framework 4.0
5. In Binding select http type and port 70.
6. Select Ok.
Now Launch the Service by following URL http://localhost:70/Service1.svc
From this article we can see how to host the WCF service in various ways.