2 Simple Ways to Configure WCF Binding





2.00/5 (1 vote)
Here are 2 simple ways to configure WCF binding
In one of previous WCF Tutorial for beginners, I discussed about the ABCs of WCF Service Endpoint. An Endpoint of Service has the following three parts also known as ABC (Address, Binding, Contract):
- Address defines Where: Where is the location of WCF Service?
- Binding defines How: How we can access the WCF Service?
- Contract defines What: What a WCF Service expose?
As Binding in Windows Communication Foundation defines how to communicate with a WCF Service, it specifies the following details:
- Communication protocol
- Encoding method
- Other optional factors as transactions, reliable sessions and security, etc.
In order to get in-depth and detailed understanding of WCF Binding, you can follow other WCF Tutorial on “Understanding WCF Binding and Channel Stack“.
In this WCF Tutorial, we are going to discuss how we can configure WCF Binding using two different approaches? We can configure our WCF Service administratively (through configuration file) as well as programmatically.
Consider we have a WCF Service (say StudentService
) and it’s hosted in IIS. There are a number of built-in WCF Bindings and for this implementation, we are using “wsHttpBinding
” as binding. All built-in bindings have its default settings and we normally don’t change them. But for a specific requirement, we can modify it accordingly.
WCF Binding Configuration – Configuration file Approach
While configuring WCF through configuration file, we can easily understand how the above discussed concepts are configured for a WCF Service? How ABCs of a Service endpoint are configured? How WCF Bindings are defined to communicate a Service? etc.
<system.serviceModel>
<services>
<service name="StudentService">
<endpoint
address="http://localhost/StudentIISHost/MyStudentHost.svc"
binding="wsHttpBinding"
contract="IStudentService">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
Using the above configuration, wsHttpBinding
will be used with its default settings but if we need to change these default settings, we can do that by adding “bindingName
" parameter (bindingName="studentWSConfiguration"
) to endpoint and provide the following configuration:
<bindings>
<wsHttpBinding>
<binding name="studentWSConfiguration"
MaxReceivedMessageSize ="70000″
MessageEncoding="Text" />
</wsHttpBinding>
</bindings>
WCF Binding Configuration – Programmatical Approach
Although it’s recommended to use the Configuration file approach for WCF binding configuration because we don’t need to change the code and compile again during deployment, still we can achieve the above programmatically as follows:
ServiceHost studentServiceHost = null;
try
{
//Base Address for StudentService
Uri httpBaseAddress = new Uri(“http://localhost:4321/StudentService");
//Instantiate ServiceHost
studentServiceHost = new ServiceHost(typeof(StudentService.StudentService),
httpBaseAddress);
//Create Binding to add to end point
WSHttpBinding studentWSConfiguration = new WSHttpBinding();
wshttpbind.MaxReceivedMessageSize = 70000;
wshttpbind.MessageEncoding = WSMessageEncoding.Text;
//Add Endpoint to Host
studentServiceHost.AddServiceEndpoint(typeof
(StudentService.IStudentService), studentWSConfiguration, “");
//Metadata Exchange
ServiceMetadataBehavior serviceBehavior = new ServiceMetadataBehavior();
serviceBehavior.HttpGetEnabled = true;
studentServiceHost.Description.Behaviors.Add(serviceBehavior);
//Open
studentServiceHost.Open();
Console.WriteLine(“Service is live now at : {0}", httpBaseAddress);
Console.ReadKey();
}
catch (Exception ex)
{
studentServiceHost = null;
Console.WriteLine(“There is an issue with StudentService" + ex.Message);
}
This is how we can configure WCF Bindings, but remember WCF (Windows Communication Foundation) is extensible so we can define our custom binding also for a very specific need.
Other Related Articles
- Top 10 WCF Interview Questions
- WCF Hosting (Console | Windows Service | IIS | WAS )
- WCF Tutorial Step by Step
- 5 simple steps to create your first WCF RESTful Service
- WCF Vs ASMX Service
- MVC3 Vs MVC4 Vs MVC5
- Difference between ASP.NET WebForms and ASP.NET MVC
- 3 ways to generate proxy for WCF Service
- Post JSON data to WCF RESTful Service using jQuery
- Consuming a WCF RESTful Service using jQuery
The post 2 simple ways to configure WCF binding appeared first on WCF Tutorial.