RESTful WCF サービスを作成しているときに、WebInvoke
属性の Method パラメーターで大文字と小文字が区別される (CAPS が必要) ことに気付きました。
そう、
[WebInvoke(Method = "Delete")]
等しくない
[WebInvoke(Method = "DELETE")]
この間違いが原因でしたProtocolException
:
System.ServiceModel.ProtocolException: リモート サーバーが予期しない応答を返しました: (405) メソッドは許可されていません。
上記の例の「DELETE」の代わりに使用する必要がある一連の定数が .NET フレームワークにあるのではないかと考えていました。もちろん、独自の定数セットを定義することもできますが、おそらくフレームワークに存在するもののように感じ、それを見逃しているだけです。