.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
david stephan

Home >> Articles >> WCF >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Remove .SVC from WCF REST Service

Posted By:Dhananjay Kumar       Posted Date: September 13, 2010    Points: 25    Category: WCF    URL: http://www.dotnetspark.com  

This article shows how to remove .SVC from WCF REST Service
 

Removing .SVC from WCF REST Service

I got a mail asking question, "How could we remove .SVC from a WCF REST Service? "
For example, instead of



We need to remove, .svc extension from address of the WCF service.

Let us say, you have a WCF REST Service up and running

http://localhost:58230/Service1.svc/GetMessage

With output



Read here: How to create a WCF REST Service

To remove service extension, we will write a HTTP Module and remove the extension and rewrite the path.

Now to remove .svc follows below steps

1.   Add a class in WCF Application project. 
2.  Add the namespace System.Web
3.  Implement the class from  IHttpModule



4.  Before starting of current context take the context path and rewrite the URL.



Full source code for

RemoveSvc.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WcfService7
{
  public class Removesvc : IHttpModule
  {
  public void Dispose()
  {
  } 


  public void Init(HttpApplication context)
  {
 

  context.BeginRequest += delegate
  {
  HttpContext cxt = HttpContext.Current;
  string path = cxt.Request.AppRelativeCurrentExecutionFilePath;
  int i = path.IndexOf('/', 2);
  if (i > 0)
  {
  string a = path.Substring(0, i) + ".svc";
  string b = path.Substring(i, path.Length - i);
  string c = cxt.Request.QueryString.ToString();
  cxt.RewritePath(a, b, c, false);
  }
  };
  }
 
  }
}



5.  Now we need to add the HTTP Module in configuration file of WCF Service.



Where, RemoveSvc is name of the class implementing IHttpModule and WcfService7 is the project name (namespace)

Web.Config




  
  
 
  
  
  
  
 
  
  
 
  
  
  
  
  
  
 
  
  
   
   


6.  Now host the service in IIS.  [Read here :  Hosting WCF Service in IIS ]
Now when you open WCF REST Service in browser, you can see you are able to  call the service without extension ,

http://localhost:4567/Service1/GetMessage


 Subscribe to Articles

     

Further Readings:

Responses

No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend