In my knowledge, the RESTful WCF still has ".svc" in its URL.
For example, if the service interface is like
[OperationContract]
[WebGet(UriTemplate = "/Value/{value}")]
string GetDataStr(string value);
The access URI is like "http://machinename/Service.svc/Value/2". In my understanding, part of REST advantage is that it can hide the implementation details. A RESTful URI like "http://machinename/Service/value/2" can be implemented by any RESTful framework, but a "http://machinename/Service.svc/value/2" exposes its implementation is WCF.
How can I remove this ".svc" host in the access URI?
Here's more detailed info using the IIS 7 Rewrite Module, or using a custom module: http://www.west-wind.com/Weblog/posts/570695.aspx
Add this to your global.asax
This will replace /rest/Service1/arg1/arg2 by /Service1.svc/arg1/arg2
I know this post is a bit old now, but if you happen to be using .NET 4, you should look at using URL Routing (introduced in MVC, but brought into core ASP.NET).
In your app start (global.asax), just have the following route configuration line to setup the default route:
then your URLs would look like this:
HTH
Its easy on IIS 7 - use a URL Rewrite Module
On IIS 6 I found its easiest to use the ISAPI Rewrite module which lets you define a set of regular expressions that map the request Urls to the .svc file...
There is also a way to eliminate the physical .svc files altogether. This can be done with a
VirtualPathProvider
.See: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/350f2cb6-febd-4978-ae65-f79735d412db
In IIS 7 you can use the Url Rewrite Module as explained in this blog post.
In IIS 6 you could write an http module that will rewrite the url:
And there's a nice example how to achieve extensionless urls in IIS 6 without using third party ISAPI modules or wildcard mapping.