.net 如何在REST模式下使用WCF服务?

.net 如何在REST模式下使用WCF服务?,.net,rest,wcf,.net,Rest,Wcf,已部署wcf服务(.net 4.0)。服务端配置如下所示: <endpoint address="" binding="webHttpBinding" bindingNamespace="https://mydomain/myservice/services" behaviorConfiguration="WebBehavior" contract="MyService" /> <e

已部署wcf服务(.net 4.0)。服务端配置如下所示:

<endpoint address="" 
          binding="webHttpBinding" 
          bindingNamespace="https://mydomain/myservice/services"     
          behaviorConfiguration="WebBehavior"
          contract="MyService" />

<endpointBehaviors>
  <behavior name="WebBehavior">
    <webHttp />
  </behavior>
</endpointBehaviors>
<system.serviceModel>
    <client>      
        <endpoint name="MyServiceEndpointBasicHttp" 
                  address="http://myDomain/myService"
                  binding="webHttpBinding" behaviorConfiguration="webBehavior" 
                  contract="MyNamespace.IMyService" />
     </client>
     <behaviors>
         <endpointBehaviors>
             <behavior name="webBehavior">
                 <webHttp />       
             </behavior>     
          </endpointBehaviors>
     </behaviors>
</system.serviceModel>
我在呼叫服务时遇到异常:

合同的操作“方法1” “IMyService”指定多个 请求要修改的主体参数 没有任何包装的序列化 元素。最多一个实体参数 可以在没有包装的情况下序列化 元素。要么移除多余的主体 参数或设置车身样式 土地上的财产 WebGetAttribute/WebInvokeAttribute到 包装好的

谷歌搜索之后,我们在方法上设置了
[WebGet(BodyStyle=WebMessageBodyStyle.WrappedRequest,ResponseFormat=WebMessageFormat.Xml)]
,但没有成功

有一件有趣的事:在异常中总是有相同的方法名,即使我正在调用其他方法


通过输入方法名和必要的参数,在使用浏览器进行测试时,服务在REST模式下工作正常…

您似乎面临着与此线程类似的问题:

“您似乎使用VS.VS ASR对话框中的“添加服务引用”对话框创建了代理代码,但该对话框不完全支持WCF REST,因此代理代码缺少[WebInvoke]属性。能否尝试在客户端代理中的操作上添加[WebInvoke(BodyStyle=WebMessageBodyStyle.Wrapped)]属性?”

您能给我们看一下服务合同和服务方法的定义吗?您所说的“在客户端代理中添加操作属性”是什么意思?必须将其添加到哪个文件中?