2010-11-21 100 views
0

需要發生什麼才能允許HTTP POST至WCF服務?將HTTP POST發送至WCF服務

我想讓人們不僅可以使用SOAP與此服務,但他們也必須能夠HTTP POST到此服務,並理想地接收XML響應。

我找不到一個簡單的方法來允許WCF服務接受HTTP POST。

我已經過了HTTP 415錯誤,需要一些幫助,可能是關於端點的web.config更改,或者方法(WebInvoke)上方的其他屬性。

謝謝!

+0

我使用REST Starter Kit @爲POX(普通HTTP XML)WCF的東西找到了一個很棒的視頻:http://www.msdev.com/Directory/Description.aspx?eventId=1312 – 2010-11-22 21:33:13

回答

4

爲了通過標準HTTP動詞與WCF服務對話,您需要使用WCF REST組件。

在.NET 3.5 SP1中,您將需要WCF REST Starter Kit(它不是基本包的一部分)。

當你有這個,你可以在你的WCF服務中定義一個端點爲webHttpBinding,基本上應該允許你定義GET,POST,PUT和DELETE操作。

查看WCF REST developer center瞭解大量白皮書,教程,演練和截屏視頻,向您展示如何完成所有這些工作。

簡而言之,你會裝飾要暴露在HTTP REST與WebGetWebInvoke屬性和網址模板中您的服務方法(S) - 類似:

[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開發中心應該進入全細節非常深入。

+0

感謝您的及時響應。我會看@初學者工具包和開發中心。 – 2010-11-21 23:56:36