.net 如何在REST模式下使用WCF服务?
已部署wcf服务(.net 4.0)。服务端配置如下所示:.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
<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)]属性?”您能给我们看一下服务合同和服务方法的定义吗?您所说的“在客户端代理中添加操作属性”是什么意思?必须将其添加到哪个文件中?