我有一个用 .NET 4.5 编写的 WCF Web 服务,它运行良好。
我用来调用它的客户端(SQL CLR 存储过程)必须使用 .NET 2,因为它适用于 Sql Server (2005)。
当我使用内置的 WCF 测试客户端测试 Web 服务时,一切正常。同样,如果我使用 .NET 3+ 和 svcutil.exe 构建客户端,它也可以工作。
但是,由于我必须使用 .NET 2,我找到的唯一解决方案是使用 wsdl.exe 生成客户端 ( original question ) - 它成功地完成了,除了我没有设法让它工作。
我收到错误消息 由于 EndpointDispatcher 上的 ContractFilter 不匹配,接收方无法处理带有“删除操作”操作的消息。这可能是因为契约(Contract)不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定(bind)/安全不匹配。检查发送方和接收方是否具有相同的契约(Contract)和相同的绑定(bind)(包括安全要求,例如消息、传输、无)。
我找到了 this question ,但是它建议查看 EndpointDispatcher
类,因为我使用的是 .NET 2.0,所以我没有使用它。
据我所知,我所有的命名空间都是相同的——但仍然没有成功。我也尝试过使用服务跟踪实用程序,但它似乎没有显示任何有用信息。
是否有可能将以这种方式制作的客户端与以这种方式提供的服务一起使用?或者端点是否永久不兼容?
最佳答案
我最终用 wsdl 重新生成了我的客户端,因为我改变了一些东西,事实证明我改变了。客户更新了我的命名空间,从那时起一切正常。
关于c# - WCF 服务 wsdl 客户端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14691375/