我需要创建一个由第三方“回叫”的服务。因此,我需要遵守他们的WSDL。
他们的WSDL具有用soapAction=""
定义的所有操作,因此我的服务需要做同样的事情。不幸的是,我收到了错误:
操作A和 B有 相同的动作()。每一次操作 必须有一个独特的行动价值。
在ASMX Web服务中,有一种模式不使用soapAction,但会使用request元素的名称。有没有办法使用WCF不仅可以在请求元素上调度,还可以发出没有soapAction的WSDL?
答案 0 :(得分:11)
这在asmx中是可行的,但开箱即用,你会发现在WCF中没有干净的方法来执行此操作,因为它使用操作将消息分派给操作。
我认为你需要的hack是将soapAction设置为“*”,然后写一个custom dispatcher。
这可能是一个糟糕的WSDL,如果您需要公开WSDL,则必须生成/窃取它,然后使用externalMetadataLocation attribute