C# Rest Wcf服务

C# Rest Wcf服务,c#,wcf,C#,Wcf,我正在尝试从浏览器测试Rest Wcf服务。 当我试图从浏览器发送一些值时,我得到以下错误。 “无法在接收方处理该消息, 由于EndpointDispatcher上的AddressFilter不匹配。 检查发送方和接收方的端点地址是否一致。” 然后我添加了[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]。 然后我得到一个不同的错误 “由于EndpointDispatcher上的ContractFilter不匹配。 这可能是因为合

我正在尝试从浏览器测试Rest Wcf服务。 当我试图从浏览器发送一些值时,我得到以下错误。 “无法在接收方处理该消息, 由于EndpointDispatcher上的AddressFilter不匹配。
检查发送方和接收方的端点地址是否一致。”

然后我添加了[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]。 然后我得到一个不同的错误

“由于EndpointDispatcher上的ContractFilter不匹配。 这可能是因为合同不匹配 (发送方和接收方之间的操作不匹配)或 发送方和接收方之间的绑定/安全不匹配。
检查发送方和接收方是否具有相同的合同和相同的约束力 (包括安全要求,例如消息、传输、无)。”

我们可以从浏览器向Rest Wcf服务传递值吗

我正在尝试从浏览器传递以下值

http://mywebsite/Service1.svc/mymethod/Firstname,Lastname,LosAngles,CA
这是我的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>


看起来您没有在REST端点上启用
行为。在配置文件的
元素中添加以下内容:

  <endpointBehaviors>
    <behavior name="REST">
      <webHttp />
    </behavior>
  </endpointBehaviors>

然后,更改
元素如下:

<endpoint address="" binding="webHttpBinding" behaviorConfiguration="REST" contract="Wcfservice1.IService1">


我在您的配置中找不到
端点行为。除非您在
Service1.svc
文件中指定了“WebServiceHostFactory”,否则此文件将丢失,甚至可能会导致出现错误。真的。在哪里添加标签。web.config中的任何代码都是由VS2008生成的。我是wcf的新手。请提供一些代码。谢谢你的帮助。。您需要从端点链接到该行为:您好,谢谢您的帮助。似乎错误的问题已经解决了。但是现在我看到“方法不允许”对话框显示出来。但我的方法是POST only,它将数据发送到wcf,wcf将数据保存到数据库。为什么我会出现这个错误。嗨,谢谢你的帮助。似乎错误的问题已经解决了。但是现在我看到“方法不允许”对话框显示出来。但我的方法是POST only,它将数据发送到wcf,wcf将数据保存到数据库。为什么会出现此错误。您是否在服务操作中添加了
[WebInvoke]
属性?请看这里的介绍,了解如何编写WCF3.5REST服务(您使用的是VS2008,对吗?):是的。这是我的Post方法:[OperationContract][WebInvoke(UriTemplate=“/SaveData/{param1},{param2},{param3}”,method=“Post”)]string SaveData(string param1,string param2,string param3);你在浏览器中调用这个,对吗?在这种情况下,请求将是GET,而不是POST!对不起,刚才没听到,我没听懂。你的意思是我不能从浏览器中调用Post方法。那么我可以从哪里调用呢。