2010-11-21 15 views
0

WCFサービスへのHTTP POSTを許可するにはどうすればよいですか?WCFサービスへのHTTP POST

このサービスでSOAPを使用するだけでなく、このサービスへのHTTP POSTが可能で、理想的にはXML応答を受信できるようにする必要があります。

WCFサービスがHTTP POSTを受け入れる簡単な方法が見つかりません。

私はHTTP 415エラーを過ぎており、エンドポイントに関するweb.configの変更や、メソッドの上にある追加の属性(WebInvoke)に関する助けが必要です。

ありがとうございました!

+0

RESTスターターキット@を使用してPOX(プレーンHTTP XML)WCF用の素晴らしいビデオを見つけました:http://www.msdev.com/Directory/Description.aspx?eventId=1312 –

答えて

4

標準HTTP動詞を使用してWCFサービスと通信するには、WCF RESTコンポーネントを使用する必要があります。

.NET 3.5 SP1には、必要なWCF RESTスターターキット(基本パッケージの一部ではありません)があります。

これを持つと、webHttpBindingでWCFサービスのエンドポイントを定義することができ、基本的にGET、POST、PUT、およびDELETE操作を定義できるようになります。

多くのホワイトペーパー、チュートリアル、ウォークスルー、スクリーンキャストなどで、このすべてを行う方法を正確に示したのがWCF REST developer centerです。一言で言えば

、あなたがWebGetまたはWebInvoke属性とURLテンプレートでHTTP REST上で公開することを、あなたのサービスメソッド(複数可)を飾るだろう - のようなもの:

[ServiceContract] 
public partial class YourService 
{ 
    [WebInvoke(Method = "POST", UriTemplate = "yourservice/{id}/save")] 
    [OperationContract] 
    SomeReturnType YourMethodCall(string someParam); 
    ... 
} 

、その後を、あなたにweb.config(IISでホスティング用)またはapp.configであなたは右結合とエンドポイントを必要とする:

<endpoint name="webEndpoint" 
      address="...." 
      binding="webHttpBinding" 
      contract="IYourServiceContract" /> 

あなたはまた、あなたの設定でいくつかの余分なものが必要になる場合があります - WCF REST devのセンターはすべてに行くべき詳細は非常に深い。

+0

迅速な対応をありがとう。私はスターターキットとデベロッパーセンターを見ていきます。 –

関連する問題