In this article, we will learn about WCF services with an example.
- First create a class library and name it TestService. (Execute VisualStudio using "Run as Administrator".)
- Next add one WCF Service class to the class library.
- It will create TestService.cs and one interface class ITestService.cs.
Here I am writing a string that we want in the output of the service.
- [ServiceContract]
- public interface ITestService
- {
- [OperationContract]
- string GetMessage(string Name,string Email,string Address);
- }
Then we need to change the TestService.cs (because Testservice.cs inherits ITestService.cs).
- public class TestService : ITestService
- {
- public string GetMessage(string Name,string Email,string Address)
- {
- return "Hello" + Name + "Email" + Email + "Address" + Address;
- }
- }
- Next we need to add a Console Application to the solution, name it TestServicehost.
- Next add a reference for System.Servicemodel to the project.
- Next add the TestService project as a reference.
Next modify the Main method as in the following:
- static void Main()
- {
- using (ServiceHost host = new ServiceHost(typeof(TestService.TestService)))
- {
- host.Open();
- Console.WriteLine("Host strated @" + DateTime.Now.ToString());
- Console.ReadLine();
- }
- }
Next add an Application Configuration file to the project. Provide the following code for it:
- <system.serviceModel>
- <services>
- <service name="TestService.TestService" behaviorConfiguration="mexBehavior">
- <endpoint address="HelloService" binding="basicHttpBinding" contract="TestService.ITestService">
- </endpoint>
- <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
- </endpoint>
- <host>
- <baseAddresses>
- <add baseAddress ="http://localhost:8080/"/>
- </baseAddresses>
- </host>
- </service>
- </services>
- <behaviors>
- <serviceBehaviors>
- <behavior name="mexBehavior">
- <serviceMetadata httpGetEnabled="true"/>
- </behavior>
- </serviceBehaviors>
- </behaviors>
- </system.serviceModel>
Next, set TestServiceHost as the start up project. Then a command prompt window will open.
- Next open Visual Studio and again use "Run as administrator".
- Create New->Project->Web->ASP.NET Empty Web application.
- Add System.Servicemodel as a Refernce to project.
- Add a service refernce to the project, it will open a window.
In the address bar, enter the URL (as you gave in the app.config). Click on go, it will show the running webservice.
Click on the web service and provide a name and then click OK.
- Next add a Webform to the project and name it Student.aspx.
- Enter the following code.
- <form id="form1" runat="server">
- <table>
- <tr>
- <td>
- <asp:Label ID="lblName" runat="server" Text="Name"></asp:Label>
- </td>
- <td>
- <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
- </td>
- </tr>
- <tr>
- <td>
- <asp:Label ID="lblMail" runat="server" Text="Email"></asp:Label>
- </td>
- <td>
- <asp:TextBox ID="txtMail" runat="server"></asp:TextBox>
- </td>
- </tr>
- <tr>
- <td>
- <asp:Label ID="lblAddress" runat="server" Text="Address"></asp:Label>
- </td>
- <td>
- <asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
- </td>
- </tr>
- <tr>
- <td>
- <asp:Label ID="lblMsg" runat="server"></asp:Label>
- </td>
- </tr>
- </table>
- </form>
In the code behind file, in the click event enter the following code.
- protected void btnSubmit_Click(object sender, EventArgs e)
- {
- TestService.TestServiceClient client = new TestService.TestServiceClient("BasicHttpBinding_ITestService");
- string Name=txtName.Text;
- string Email=txtMail.Text;
- string Address=txtAddress.Text;
- lblMsg.Text = client.GetMessage(Name, Email, Address);
- }
Next, run the project; we will get the result.