获取IRequestReplyRouter与服务合同不匹配或没有有效的方法合同错误?

时间:2011-04-04 11:33:30

标签: wcf iis-7 routing

enter image description here

无论我尝试做什么,当谈到WCF路由时,我经常会遇到此错误(通过WCF测试客户端)。我不能在我的服务中看到任何方法?

起初我只是假设它是我的代码,所以我已经下载了几乎所有我能找到的WCF +路由的示例,并且只是按原样运行它们。发生同样的错误!

我已经检查了事件查看器日志等,看看是否有错误潜入那里?没有。我试过谷歌搜索和搜索其他人(当然我并不孤单)没有。

注意:

  1. 我正在使用安装了AppFabric的IIS7。
  2. 我使用的是.NET 4.0
  3. 我正在使用WCF服务应用程序模板(VS2010中的默认设置)
  4. 我对这一个失去了理智:)
  5. 这个让我绝对不知道发生了什么事?

    以下是WCF测试客户端带回来的内容 -

    enter image description here

2 个答案:

答案 0 :(得分:2)

WCF 4路由服务不会公开“实际”服务的元数据,除非您通过过滤的端点或单独的URL公开它。 wcf测试客户端不够智能,无论如何都无法解决这个问题。

我建议,如果你想测试路由功能,请使用像soapui这样的东西。然后,您可以使用它来修改您向其发送请求的服务地址。

如果您想通过路由器公开您的服务元数据,那么本文应该会有所帮助。

http://www.devproconnections.com/article/net-framework-402/Routing-Service-Metadata/

HTH

答案 1 :(得分:1)

当我收到此错误时,这是​​因为我执行了契约优先方法并创建了自己的WSDL,然后使用它来创建服务的接口。

WCF测试客户端将动态创建WSDL,然后动态分配的合同名称与我手动设置的名称不匹配。

一旦我更改了web.config以在externalMetadataLocation元素中填充serviceMetadata属性并将其指向我的静态WSDL,一切都很好。