2011-07-07 18 views
2

以下のようにWCF REST APIを実装しました。WCF REST Webサービスは、URI内に最後のスラッシュがない投稿要求を処理しません。

[WebInvoke(UriTemplate = "", Method = "POST")] 
public string Create(Article article) { .. } 

問題があります。

私は、それが動作mydomain.com/articles/のように、このサービスを呼び出す

が、私は最後のスラッシュなしmydomain.com/articlesのように呼び出すと、それはHTTPレスポンスコード307、一時的なリダイレクトを返す場合。

URIを動作させるにはどうすればよいですか、または私の提案に間違いがありますか?

答えて

1

/articles/articlesに/記事をリダイレクトする方法はいくつかあります。あなたのUriTemplateは "/"エントリと一致しません。 ScottGuはURL操作方法に関してa whole articleを持っています。私はそれらのいずれかがあなたのために働くと思います。 iis7リライトモジュール(iis7を使用していない場合はISAPI_Rewriteなどのサードパーティツールを使用)と、コードでそれを処理するいくつかの方法が含まれています。アプローチ#2を使用してコードを明示的に書き換えることができます。あるいは、異なるUriTemplatesを持つ2つの別々のメソッドを作成することもできます.1つは ""と1つは "/"です。

+0

あなたはWCFの書き換えとPOSTメソッドについて話していますか? –

+0

私はなぜそれが表示されません。 .svcを削除するなど、いくつかの状況ではPOSTはGETよりも書き換えが難しいかもしれませんが、これらのメソッドの少なくとも1つは月のために機能するはずです。私はiis7のPOST用にrewriteモジュールを使用しましたが、自分の状況を助けるために[WcfContrib](https://github.com/mikeobrien/WcfRestContrib)のWCFプロジェクトをベースにしています。しかし、それらのすべてに失敗しても、各インスタンスが動作しないように2つのメソッドを作成する理由はありません。 –

+0

これについて間違っていますか?私はなぜ落選したのかわからないが、これは私のために働いている。 –

関連する問題