2012-10-11 63 views
1

我正嘗試使用svcutil生成的客戶端與RESTful WCF服務進行通信。連接到RESTful服務的WCF客戶端無法正常工作

服務合同被定義爲:

public interface IService1 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "/GetTest?a={a}&b={b}&c={c}")] 
    int GetTest(int a, int b, int c); 
} 

我用Visual Studio來引用該服務並用生成的客戶端代碼來調用GetTest操作。不幸的是,我得到這個消息:

Operation 'GetTest' of contract 'IService1' specifies multiple request body parameters to be serialized without any wrapper elements. At most one body parameter can be serialized without wrapperelements. Either remove the extra body parameters or set the BodyStyle property on the WebGetAttribute/WebInvokeAttribute to Wrapped 

但是,當我要求從Web瀏覽器中對應的URL,它的工作和表現出正確的返回值。

這很奇怪。生成的客戶端代碼是否有問題?還是我錯誤配置了任何東西?

以下是我的客戶端配置:

<system.serviceModel> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="Service1EndPointBehavior"> 
       <webHttp /> 
      </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <client> 
     <endpoint address="http://localhost:8010/Service1/" behaviorConfiguration="Service1EndPointBehavior" 
      binding="webHttpBinding" contract="ServiceReference1.IService1" 
      name="Service1EndPoint" /> 
    </client> 
</system.serviceModel> 

感謝。

回答

相關問題