tags:

views:

55

answers:

0

I have 2 WCF services that implement an interface from a separate library. The interface's methods are not marked with either the WebGet or the WebInvoke attribute. BUT, one service is going to be handling POST request, while the other is handling the GET request. So its kinda like this:

Service 1: Handles all POST request. Request is in JSON, response is in JSON. All methods inherited and implemented from the interface are marked with WebInvoke

Service 2: Handles all GET request. Request is in JSON, response is in JSONP. All methods inherited and implimented from the interface are marked with WebGet

So far so good. Now fire these guys up aaaaaand splat. This is the error i get:

Operation 'SomeMethod' in contract 'IServiceContract' has both WebGetAttribute and WebInvokeAttribute; only one can be present. 

hmmmm, this would make sense if the actual interface already was marked with one or both of the attributes, but it isnt.

double hmmmmmm: This setup works perfectly fine if you create a default WCF service through VS add a second service and markup all the method implementations.

triple hmmmmmmm: If I only remove the WebGet attribute from my JSONP service (leaving the WebInvoke on the JSON service), it works. The same goes if i remove the WebInvoke attribute from my JSON service.

edit: another weird thing, only one of the services throws this error (my JSONP/GET service), while the regular JSON/POST service works.