I have created a simple web service based off one of the project templates in the Microsoft WCF Starter Kit 2 for .NET 3.5. I have successfully implemented a GET method. However I am having trouble get a POST method to work.
[WebHelp(Comment = "Sample description for DoWork")]
[WebInvoke(UriTemplate = "DoWork", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
public SampleResponseBody DoWork(SampleRequestBody request)
{
//TODO: Change the sample implementation here
return new SampleResponseBody()
{
Value = String.Format("Sample DoWork response: '{0}'", request.Data)
};
}
Below is the definition of the SampleResponseBody and SampleRequestBody classes:
public class SampleResponseBody
{
public string Value { get; set; }
}
[DataContract(Name = "SampleRequestBody")]
public class SampleRequestBody
{
[DataMember(Name = "Data")]
public string Data { get; set; }
}
When I start debugging my application it runs on my localhost. I go to:
http://localhost:2702/Service.svc/dowork
And it gives me error message: "Error Description: 'HTTP Method not allowed'"
Then if I try
http://localhost:2702/Service.svc/dowork/
I get: "Error Description: 'Resource does not exist'"
I have also tried
http://localhost:2702/Service.svc/dowork/23423
And still get: "Error Description: 'Resource does not exist'"
If anyone has any advice it would be greatly appreciated. I have even read RESTful.NET by Jon Flanders and he barely mentions HTTP POST methods. Also if anyone has any useful resources for create a RESTful Web Service in WCF I would appreciate that as well.
Thanks in advance!