2011-01-20 49 views
0

有沒有什麼辦法可以配置webHttpBinding WCF服務接受多個查詢字符串參數,Stream參數是請求的主體?將查詢字符串參數添加到WCF服務操作接受流

我想這樣做而不省略操作簽名中的querystring參數並直接從OperationContext訪問它們。

UriTemplate看起來是明顯的選擇,但只會導致AddressFilter不匹配異常被拋出。

爲了避免「流可以是唯一參數」錯誤,將參數移動到具有MessageHeader屬性的MessageHeader屬性上,以避免MessageHeader屬性不受WebHttpBinding支持。

只留下MessageContract上的Stream參數會通知我MessageContracts中不支持Streams for WebScriptEnablingBehavior。

有什麼想法?

回答

1

對此的解決辦法是:

  1. 馬克與具有Method="POST"UriTemplate包括在查詢字符串
  2. 設置端點的結合webHttpBinding
  3. 您的非流參數的 [WebInvoke]屬性操作
  4. <webHttp/>添加到您的端點的行爲配置
  5. 在您的端點的綁定配置上設置transferMode="Streamed"

而且有些事情需要注意的:

  • wsHttpEndPoint和basicHttpEndPoint不支持流和非流參數的組合。如果你需要SOAP + webHttpBinding,你需要使用兩個服務接口和兩個端點(儘管可以共享具體的實現)
  • WSDL生成器也不支持它,所以你需要禁用webHttp端點或訪問幫助頁面時會拋出一個異常(雖然調用服務仍然可以)
相關問題