This problem has been solved and answered many different ways but none of the answers seem to propose a complete basic or step by step solution. This article is my attempt to consolidate the answer into one concise how to article.
Executive Summary
For those of you that want the answers quickly, here are the steps necessary to properly use WebGet methods in a WCF Service:
- Use the WebGet attribute and specify a UriTemplate.
- Use the webBinding binding type in your web.config.
- Create an endpoint behavior that specifies webHttp in your web.config.
- Reference the endpoint behavior in the service endpoint configuration section.
- Set the binding in the service endpoint configuration to webHttpBinding (or to the name of the binding configuration that specifies webHttpBinding).
How-To / Step by Step
In this section we will go through the process of creating a simple service with Visual Studio 2010 that performs a simple WebGet operation.
Create a new WCF Service Application project.

I am going to leave the default Service1 class and interface names intact for simplicity.
Open the IService1.cs code file and change it so that it looks like this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WebGetTest
{
[ServiceContract]
public interface IService1
{
[WebGet(UriTemplate="/add/{a}/{b}")]
[OperationContract]
string AddNumbers(string a, string b);
}
}
Note the WebGet attribute in the interface definition. Now we are going to modify the Service1.cs file to implement the AddNumbers method.
public class Service1 : IService1
{
public string AddNumbers(string a, string b)
{
int firstInt, secondInt;
int.TryParse(a, out firstInt);
int.TryParse(b, out secondInt);
return string.Format("{0} + {1} = {2}",
firstInt, secondInt, firstInt + secondInt);
}
}
This implements the method.
Compile the project and make sure it builds. Next we are going to update the web.config file so this actually works.
In Visual Studio click Tools | WCF Service Configuration Editor, Load the web.config file for this new project.

You will see the WCF Config Editor.
Now we are going to create a Service Endpoint and an Endpoint Behavior.
Click the Services configuration node and click Create a New Service.
Click Browse to find the service type. You are going to navigate to the DLL that implements your WCF service (hint, it should be in your /bin folder).

After clicking Open you will be allowed to choose the class that implements your service. Click it and then click Open.

After clicking Open you will click Next. This will bring you to the service contract screen. This screen is asking you what the interface is that describes your service. Typically this will be automatically detected and filled out for you.

Click Next.

Choose HTTP and click Next.

Choose Basic Web Services interoperability and click Next.
For the Endpoint Address enter / and click Next then on the summary page click Finish.

You will now have a service configured in your Web.config file.

Now we will create an endpoint behavior. Expand Advanced, Right Click on Endpoint Behaviors and choose New Endpoint Behavior.

Click Add, Choose webHttp and click Add.

The new behavior configuration screen will now look like this:

Change the Binding to webHttpBinding and select the NewBehavior0 behavior configuration.

Click Save and exit from the WCF Service Configuration tool.
Now you should be able to start your WCP project and navigate to the web method in your browser and see a result like below.

Note that the URL contains your .svc file and then the UriTemplate property of the WebGet attribute kicks in.