簡體   English   中英

將查詢參數傳遞給WCF服務

[英]Passing in query parameters to a WCF Service

我對如何執行此操作感到有些困惑。 在搜索之后,我遵循了一些示例,但是仍然無法正常工作,然后大多數示例似乎都針對Json(不確定是否會有所作為)。

我正在使用basicHttpBinding。

所以我有一個簡單的界面:

<ServiceContract()>
 Public Interface ICustomersService
<OperationContract()>
<WebGet(UriTemplate:="SaveName/{name}")> 
Sub SaveName(ByVal name as string)

接下來,我將創建可以運行的托管應用程序,並且可以訪問WSDL頁面並可以查看SaveName。

當前網址是http://example.com/

我想輸入一個名稱,然后將其保存到數據庫中。 我希望該網址與

http://example.com/SaveName?name="Tony"

那不起作用,所以我嘗試了使用標准查詢字符串參數的幾種變體,但是不起作用。

我是在做錯事還是缺少步驟?

要使用WebGet / WebInvoke屬性,不能使用basicHttpBinding (或者,可以使用它,但是那些屬性將被忽略)。 BasicHttpBinding是使用SOAP協議的綁定之一,它對消息的格式有一些嚴格的要求(簡而言之,幾乎所有內容都在請求正文中,而某些尋址參數可能在HTTP標頭中)。

為了能夠使用WebGet屬性定義端點操作,端點需要使用webHttpBinding ,並且還需要對其應用<webHttp/>行為( WebHttpBehavior ,如果要通過代碼定義端點)。

還有一件值得指出的事情:如果您使用“ Web”端點,則WSDL將不具備將客戶端連接到該端點所需的所有信息,因此您將無法使用“ WCF測試客戶端”來跟它說話。 有關此博客的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM