IIS 5/6 Hosting
Let as do some hands on, to create service and host in IIS
Step 1:Start the Visual Studio 2008 and click File->New->Web
Site. Select the 'WCF Service' and Location as http. This will directly host the
service in IIS and click OK.
Step 2: I have created sample HelloWorld service, which will accept
name as input and return with 'Hello' and name. Interface and implementation of
the Service is shown below.
IMyService.cs
MyService.cs
IMyService.cs
[ServiceContract]
public interface IMyService
{
[OperationContract]
string HelloWorld(string name);
}
public class MyService : IMyService
{
#region IMyService Members
public string HelloWorld(string name)
{
return "Hello " + name;
}
#endregion
}
Step 3: Service file (.svc) contains name of the service and code
behind file name. This file is used to know about the
service.
MyService.svc
MyService.svc
<%@ ServiceHost Language="C#" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>
Step 4: Server side configurations are mentioned in the config file.
Here I have mention only one end point which is configured to 'wsHttpBinding',
we can also have multiple end point with differnet binding. Since we are going
to hosted in IIS. We have to use only http binding. We will come to know more on
endpoints and its configuration in later tutorial. Web.Config
<system.serviceModel> <services> <service behaviorConfiguration="ServiceBehavior" name="MyService"> <endpoint address="http://localhost/IISHostedService/MyService.svc" binding="wsHttpBinding" contract="IMyService"> <identity> <dns value="localhost"/> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> </service> </services> <behaviors> <serviceBehaviors> <behavior name="ServiceBehavior"> <!-- 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>
This screen will appear when we run the application.
Step 5: Now we successfully hosted the service in IIS. Next we have to
consume this service in client application. Before creating the client
application, we need to create the proxy for the service. This proxy is used by
the client application, to interact with service. To create the proxy, run the
Visual Studio 2008 command prompt. Using service utility we can create the proxy
class and its configuration information.
svcutil http://localhost/IISHostedService/MyService.svc
After executing this command we will find two file generated in the default
location.-
MyService.cs - Proxy class for the WCF service
- output.config - Configuration information about the service.
Step 6: Now we will start creating the Console application using
Visual Studio 2008(Client application).
Step 7: Add the reference 'System.ServiceModel'; this is the core dll
for WCF.
Step 8: Create the object for the proxy class and call the HelloWorld
method.
static void Main(string[] args)
{
//Creating Proxy for the MyService
MyServiceClient client = new MyServiceClient();
Console.WriteLine("Client calling the service...");
Console.WriteLine(client.HelloWorld("Ram"));
Console.Read();
}
Step 9: If we run the application we will find the output as shown
below.
I hope you have enjoyed the Service hosted in IIS. Now let start the look on
the self hosted service.
I hope you have enjoyed the Service hosted in IIS. Now let start the look on
the self hosted service.
No comments:
Post a Comment