- WCF - Exception Handling
- WCF - Security
- WCF - RIA Services
- WCF - Transactions
- WCF - Instance Management
- WCF - Service Binding
- WCF - Consuming WCF Service
- WCF - Windows Service Hosting
- WCF - WAS Hosting
- WCF - Self-Hosting
- WCS - IIS Hosting
- WCF - Hosting WCF Service
- WCF - Creating WCF Service
- WCF - Architecture
- WCF - Developers Tools
- WCF - Versus Web Service
- WCF - Overview
- WCF - Home
WCF Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
WCF - Consuming WCF Service
WCF services allow other apppcations to access or consume them. A WCF service can be consumed by many ways depending on the hosting type. Here, we are explaining the step-by-step method to consume a WCF service for each of the following popular hosting options −
Consuming WCF Service hosted in IIS 5/6
Consuming WCF Service that is self-hosted
Consuming WCF Service hosted in Windows Activation Service
Consuming WCF Service hosted in Windows Service
Consuming WCF Service Hosted in IIS 5/6
The process of consumption of a WCF service hosted in IIS 5/6 is discussed below in detail. In addition, the discussion includes how to create proxy and console apppcations.
Step 1 − Once a service is hosted in IIS, we have to consume it in cpent apppcations. Before creating the cpent apppcation, we need to create a proxy for the service. This proxy is used by the cpent apppcation to interact with the service. To create a proxy, run Visual Studio 2008 command prompt. Using service utipty, we can create the proxy class and its configuration information.
svcutilhttp://localhost/IISHostedService/Service.svc
After executing this command, we will get two files generated in the default location.
MyService.cs − Proxy class for the WCF service
output.config − Configuration information about the service
Step 2 − Now, we will start creating the Console apppcation using Visual Studio 2008 (Cpent apppcation).
Step 3 − Add the reference System.ServiceModel ; this is the core dll for WCF.
Step 4 − Create a Proxy class.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyServiceCpent { Class Program { Static void Main(string[] args) { // Creating Proxy for the MyService ServiceCpent Cpent = newServiceCpent(); Console.WriteLine("Cpent calpng the service..."); Console.WriteLine("Hello Ram"); Console.Read(); } } }
The output appears as follows −
Consuming Self-hosted WCF Service
Here, the entire process of consuming a self-hosted WCF Service is explained step-by-step along with ample coding and screenshots wherever necessary.
Step 1 − Service is hosted, now we need to implement the proxy class for the cpent. There are different ways of creating the proxy.
Using SvcUtil.exe, we can create the proxy class and its configuration file with end-points.
Adding Service reference to the cpent apppcation.
Implementing CpentBase<T> class
Of these three methods, Implementing CpentBase<T> is the best practice. If you are using the other two methods, we need to create a proxy class every time we make any changes in the Service implementation. But this is not the case for CpentBase<T>. It will create the proxy only at runtime and so it will take care of everything.
For this purpose, create one proxy class, which includes the references of System.ServiceModel and MyCalculatorService.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using MyCalculatorService; namespace MyCalculatorServiceProxy { // WCF create proxy for ISimpleCalculator using CpentBase Pubpc class MyCalculatorServiceProxy : CpentBase<ISimpleCalculator>, ISimpleCalculator { Pubpc int Add(int num1, int num2) { //Call base to do funtion returnbase.Channel.Add(num1, num2); } } }
Now, create one console apppcation, which includes the references of System.ServiceModel and MyCalculatorServiceProxy.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using MyCalculatorServiceProxy; namespace MyCalculatorServiceCpent { classProgram { Static void Main(string[] args) { MyCalculatorServiceProxy.MyCalculatorServiceProxy proxy = newMyCalculatorServiceProxy.MyCalculatorServiceProxy(); Console.WriteLine("Cpent is running at " + DateTime.Now.ToString()); Console.WriteLine("Sum of two numbers. 5 + 5 =" + proxy.Add(5,5)); Console.ReadLine(); } } }
Step 2 − End-point (same as service) information should be added to the configuration file of the cpent apppcation.
<?xmlversion = "1.0"encoding = "utf-8" ?> <configuration> <system.serviceModel> <cpent> <endpoint address ="http://localhost:8090/MyCalculatorServiceProxy/ISimpleCalculator" binding = "wsHttpBinding" contract "MyCalculatorServiceProxy.ISimpleCalculator"> </endpoint> </cpent> </system.serviceModel> </configuration>
Step 3 − Before running the cpent apppcation, you need to run the service. Shown below is the output of the cpent apppcation.
Consuming WCF Service Hosted in WAS
Consuming a WCF service that is hosted in WAS is a simple process involving only a few steps. The steps are as follows −
Add the proxy class and the configuration file to the cpent apppcation.
Create the object for the MathServiceCpent and call the method.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespaceWASHostedCpent { classProgram { staticvoid Main(string[] args) { MathServiceCpent cpent = newMathServiceCpent(); Console.WriteLine("Sum of two number 5,6"); Console.WriteLine(cpent.Add(5, 6)); Console.ReadLine(); } } }
The output appears as shown below.
Consuming WCF Service Hosted in Windows Service
The step-by-step process of how to consume a WCF service hosted in Windows Service is expressed below in detail with coding and instructions.
Once it is hosted successfully, we can create a proxy class for the service and start using in the cpent apppcation. Here, it is shown with the IIS hosting type consuming.
Add the reference of ServiceModel.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespaceWindowServiceCpent { classProgram { staticvoid Main(string[] args) { //Creating Proxy for the MyService MyServiceCpent cpent = newMyServiceCpent(); Console.WriteLine("Cpent calpng the service..."); Console.WriteLine("Sum of two numbers 5,6"); Console.WriteLine(cpent.Add(5, 6)); Console.WriteLine("Subtraction of two numbers 6,5"); Console.WriteLine(cpent.Sub(6, 5)); Console.WriteLine("Multippcation of two numbers 6,5"); Console.WriteLine(cpent.Mul(6, 5)); Console.WriteLine("Division of two numbers 6,3"); Console.WriteLine(cpent.Div(6, 3)); Console.Read(); } } }
The output appears as follows −
Advertisements