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.
The Four “ities”. The four “ities” are Reliability, Compatibility, Scalability, and Security. The . NET Framework is a highly scalable and reliable platform as it secures its applications by assigning access rights to specific users.
Fast: ASP.NET Core no longer depends on System. Web. dll for browser-server communication. ASP.NET Core allows us to include packages that we need for our application.
A bit indirect, but there are System.Net.WebRequestMethods.Http
constants:
public const string Connect = "CONNECT";
public const string Get = "GET";
public const string Head = "HEAD";
public const string MkCol = "MKCOL";
public const string Post = "POST";
public const string Put = "PUT";
but no "DELETE" - suggest you make your own...
Annoyingly, there is a System.Web.HttpVerb
, but it is internal
, so not usable - and it is an enum, so to use the name in an attribute you'd need a bit of hackery.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With