I just noticed while creating a RESTful WCF service that the Method parameter on the WebInvoke attribute is case sensitive (CAPS required).
So,
[WebInvoke(Method = 'Delete')]
is not equal to
[WebInvoke(Method = 'DELETE')]
This mistake was causing a ProtocolException:
System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method Not Allowed.
I was wondering is there a set of constants in the .NET framework that I should be using in place of ‘DELETE’ in the above example. I could of course define my own set of constants, but if feels like something that probably exists in the framework and I am just missing it.
A bit indirect, but there are
System.Net.WebRequestMethods.Httpconstants:but no ‘DELETE’ – suggest you make your own…
Annoyingly, there is a
System.Web.HttpVerb, but it isinternal, so not usable – and it is an enum, so to use the name in an attribute you’d need a bit of hackery.