The problem is most likely that your service method requires 2 parameters. Only one body parameter may be present.
You can fix this in two ways. First way: Add BodyStyle = WebMessageBodyStyle. Processing your WebInvoke attributes, for example:
[WebInvoke(Method = "POST", UriTemplate = "projectors", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] void RecordBreakdown(string sn, int modelCode);
Second way: create a class for POST data. For example, you can create a class for all the variables that you want to place in the JSON service. To create classes from JSON you can use Json2CSharp (or Insert JSON as classes in VS2012 Update 2). Next json
{"sn":2705, "modelCode":1702 }
will result in the following class:
public class Record { public string sn { get; set; } public int modelCode { get; set; } }
After that, you will have to change your methods to accept this class as follows:
void RecordBreakdown(string sn, int modelCode);
in
void RecordBreakdown(Record record);
After that, you can now send JSON to the service.
Hope this helps!
Edit: Joining my answer below with this.
After reviewing your configuration file again, it also looks like an invalid binding configuration. The default binding for WCF is "bassicHttpBinding", which mainly uses SOAP 1.1.
Since you want to use JSON and the RESTFul service, you will have to use "webHttpBinding". Here is a link to the basic configuration that we always use for our RESTFul services. You can set the security mode to "Transport" when safe transport is needed (for example, https).
<security mode="Transport"></security>