2009-12-01 67 views
1

我已經變得相當沮喪WCF的,我只是想用這個簡單的場景:消費以多種方式(.NET,純XML)WCF REST服務

  1. 使用REST提供Web服務,與像UriTemplate /method/{param1}/{param2}/以及作爲XML作爲POST數據發送到服務的第3個參數。
  2. 只使用純XML,不需要SOAP開銷。
  3. 能夠在Visual Studio中生成代理,因此.Net使用客戶端可以輕鬆使用該服務(不必在意這裏的SOAP開銷)。

我可以創造1和2,但沒有辦法,我可以使用3我想在我的服務配置同時添加webHttpBindingbasicHttpBinding端點;我愚弄<services/>標籤,但我無法實現這個工作。我在這裏錯過什麼?!

N.B.我查看了這篇文章:REST/SOAP endpoints for a WCF service但是這裏沒有描述什麼似乎在這裏工作?!

回答

1

您無法爲webHttpBinding生成客戶端代理,而basicHttpBinding使用SOAP。這是沒有辦法的。您提到的問題啓用了這兩種綁定。您無法從每個綁定中挑選出您喜歡的功能。

但是,您爲什麼要創建一個客戶端代理?使用Microsoft.Http庫,調用你的服務是非常簡單,

var client = new HttpClient(); 
var content = HttpContent.Create(myXmlDocument); 
client.Post("http://example.org/param1/param2",content) 
+0

我想VS處理產生的實體類型等我好不容易纔得到的東西用一個休息的basicHttpBinding的和肥皂的wsHttpBinding工作。 – 2009-12-01 18:36:49

+0

在WCF REST Start Kit中,有一個名爲「將XML粘貼爲類型」的功能,允許您根據剪貼板中返回的XML生成類。 – 2009-12-01 19:21:58

+0

哎呀,應該讀取「WCF REST入門套件預覽2」 – 2009-12-01 19:22:41