在WCF服务合同中使用soapAction =“”进行多个操作?

时间:2010-04-09 06:27:38

标签: c# wcf wsdl

我需要创建一个由第三方“回叫”的服务。因此,我需要遵守他们的WSDL。

他们的WSDL具有用soapAction=""定义的所有操作,因此我的服务需要做同样的事情。不幸的是,我收到了错误:

  

操作A和   B有   相同的动作()。每一次操作   必须有一个独特的行动价值。

在ASMX Web服务中,有一种模式不使用soapAction,但会使用request元素的名称。有没有办法使用WCF不仅可以在请求元素上调度,还可以发出没有soapAction的WSDL?

1 个答案:

答案 0 :(得分:11)

这在asmx中是可行的,但开箱即用,你会发现在WCF中没有干净的方法来执行此操作,因为它使用操作将消息分派给操作。

我认为你需要的hack是将soapAction设置为“*”,然后写一个custom dispatcher

这可能是一个糟糕的WSDL,如果您需要公开WSDL,则必须生成/窃取它,然后使用externalMetadataLocation attribute