Creating custom service host enables you to change a service's run-time behavior.
1. Download and open the WCF application here.
2. In the service host project add a class called NewProdSrvHost.
3. This public class inherits from ServiceHost class.
4. Add a default constructor calls the base(typeof(ProductService))
5. Override OnOpening() method to add a new endpoint as shown below:
6. To always enable metadata even if the user turns it off:
Always metadata enable with one endpoint.
7. In the main method of the host instance, do the following changes to the host.
8. Go to App.config file of the ConsoleHost project, locate and remove the following line of code:
9. Set the ConsoleHost as the startup project and Run it. Notice that a new endpoint with the relative address "newservice" is active.
10. Open a browser and navigate to the metadata address of the service. Note new endpoint and the metadata is enabled in the overridden OnOpening() method.
Links
Custom Service Host - https://msdn.microsoft.com/en-us/library/aa395224(v=vs.110).aspx
1. Download and open the WCF application here.
2. In the service host project add a class called NewProdSrvHost.
3. This public class inherits from ServiceHost class.
4. Add a default constructor calls the base(typeof(ProductService))
5. Override OnOpening() method to add a new endpoint as shown below:
base.OnOpening();
this.AddServiceEndpoint(typeof(IProductService), new BasicHttpBinding(), "newservice");
protected override void OnOpening()
{
base.OnOpening();
this.AddServiceEndpoint(typeof(IProductService), new BasicHttpBinding(), "newservice");
ServiceMetadataBehavior mdb = this.Description.Behaviors.Find<ServiceMetadataBehavior>();
if (mdb != null)
{
mdb.HttpGetEnabled = true;
}
else
{
mdb = new ServiceMetadataBehavior();
mdb.HttpGetEnabled = true;
this.Description.Behaviors.Add(mdb);
}
}
Always metadata enable with one endpoint.
7. In the main method of the host instance, do the following changes to the host.
NewProdSrvHost host = new NewProdSrvHost();
<serviceMetadata httpGetEnabled="true"/>
9. Set the ConsoleHost as the startup project and Run it. Notice that a new endpoint with the relative address "newservice" is active.
10. Open a browser and navigate to the metadata address of the service. Note new endpoint and the metadata is enabled in the overridden OnOpening() method.
Links
Custom Service Host - https://msdn.microsoft.com/en-us/library/aa395224(v=vs.110).aspx
Comments
Post a Comment