【发布时间】:2011-08-02 23:02:45
【问题描述】:
我正在尝试从浏览器测试我的 Rest Wcf 服务。
当我尝试从浏览器发送一些值时,我收到以下错误。
“消息无法在接收方处理,
由于 EndpointDispatcher 的 AddressFilter 不匹配。
检查发送方和接收方的 EndpointAddresses 是否一致。”
然后我添加了 [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>
【问题讨论】:
-
我在您的配置中找不到
<webHttp/>端点行为。除非您在Service1.svc文件中指定了“WebServiceHostFactory”,否则这是缺失的,甚至可能是您遇到的错误的原因。 -
真的。我在哪里添加
标签。无论 web.config 中的代码是由 VS2008 生成的。我是 wcf 的新手。你能提供一些代码吗?感谢您的帮助。 -
。您需要从端点链接到该行为: -
您好,感谢您的帮助。似乎错误的问题已解决。但现在我正在显示“方法不允许”对话框。但我的方法是仅 POST,它将数据发送到 wcf,wcf 将数据保存到数据库。为什么我会收到此错误。