休息Wcf服务

Hen*_*nry 3 c# wcf

我试图从浏览器测试我的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)

mth*_*rba 8

看起来您没有<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)