2011-11-11 12 views
2

私はVS2008(3.5)で書かれたIIS6の下でローカルに実行しているWCF RESTサービスを持っています。Extensionless REST WCFサービスはPUTメソッドのためのhttp 405を返します

svcファイルのasp.net ISAPIマッピングがすべての動詞を受け入れるように設定されています url rewriteを使用して無制限URIがサービスで動作するようにするためにワイルドカードスクリプトマッピングを有効にしました。

したがって、指定した.svcファイルで残りのサービスにPUTを実行するとOKになります。 は、SVCで同じことを行うと、405

すなわち

http://thehost/therestmethod = 405 http://thehost/theservice.svc/therestmethod = 200

リターンを省略すべてのURL書かれたバージョンでは、PUTは唯一の例外であることと連携します!拡張機能を持たないバージョンでPUTを実行しようとすると、URL書き換えに成功しましたが、エラーが発生したので、書き換えに成功しました。

WCFトレースを使用しようとしましたが、これはエラーを記録していません。それはそれまでそれを得ていないようですね!

答えて

0

hereから撮影:

HTTP動詞を:ほとんどのファイアウォールとWebクライアントがHTTP GETとPOST動詞を可能にしながら、それらのいくつかは、PUTをサポートしてDELETE、および他の動詞はありません。そのようなサポートされていない動詞の呼び出しを可能にするために、一般的なプラクティスは、POSTリクエストでX-HTTP-Method-Override HTTPヘッダーを使用して、呼び出すメソッドを指定することです。この機能を実装する方法については、XHttpMethodOverrideサンプルを参照してください。

私は、IISのURL書き換え/許可動詞チェックコードでは、何かが非常に整列していないと思います。
これが役に立ちます。

+0

ファイアウォールが関与していないため、これは、これに加えて、svcファイルを含むことが正常に機能することを排除します – Spencer

関連する問題