我试图从浏览器测试我的Rest Wcf服务.当我试图从浏览器发送一些值时,我收到以下错误."由于EndpointDispatcher上的AddressFilter不匹配,无法在接收方处理消息.
检查发送方和接收方的EndpointAddresses是否一致."
然后我添加了[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)].然后我得到一个不同的错误.
"由于EndpointDispatcher上的ContractFilter不匹配.这可能是由于合同不匹配(发送方和接收方之间的操作不匹配)或发送方与接收方之间的绑定/安全性不匹配.
检查发送方和接收方是否具有相同的合同,相同的绑定(包括安全要求,例如消息,传输,无)."
我们可以从浏览器传递值到Rest Wcf服务吗?
我试图从浏览器传递以下值.
http://mywebsite/Service1.svc/mymethod/Firstname,Lastname,LosAngles,CA
Run Code Online (Sandbox Code Playgroud)
这是我的web.confg文件
<system.serviceModel>
<services>
<service behaviorConfiguration="Wcfservice1.ServiceBehavior" name="="Wcfservice1.Service1">
<endpoint address="" binding="webHttpBinding" contract="Wcfservice1.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Wcfservice1.ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
看起来您没有<webHttp/>在REST端点上启用该行为.<behaviors/>在配置文件中的元素内添加:
<endpointBehaviors>
<behavior name="REST">
<webHttp />
</behavior>
</endpointBehaviors>
Run Code Online (Sandbox Code Playgroud)
然后,<endpoint/>像这样更改元素:
<endpoint address="" binding="webHttpBinding" behaviorConfiguration="REST" contract="Wcfservice1.IService1">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4430 次 |
| 最近记录: |