我有一个用.NET 4.5编写的WCF Web服务,它工作正常。
我用来调用它的客户端(SQL CLR存储过程)必须使用.NET 2,因为它适用于Sql Server(2005)。
当我使用内置的WCF测试客户端测试Web服务时,一切正常。同样,如果我使用带有svcutil.exe的.NET 3+构建客户端,它也可以工作。
但是,由于我必须使用.NET 2,我找到的唯一解决方案是使用wsdl.exe来生成客户端(original question) - 它成功完成了,除了我没有设法得到它工作
我收到错误The message with Action 'action removed' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
我找到了this question,但它建议查看我在.NET 2.0上使用的EndpointDispatcher
类。
据我所知,我的所有命名空间都是一样的 - 但仍然没有运气。我也尝试过使用服务跟踪实用程序,但它似乎没有向我展示任何有用的东西。
是否有可能以这种方式使用以这种方式制作的客户端?或者端点永久不兼容?
答案 0 :(得分:1)
我最终用wsdl重新生成我的客户端,因为我改变了一些东西,原来我已经改变了。客户端更新了我的命名空间,从那时起一切正常。