代码之家  ›  专栏  ›  技术社区  ›  John Saunders KB22

wcf服务合同中soapaction为“”的多个操作?

  •  7
  • John Saunders KB22  · 技术社区  · 14 年前

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

    他们的wsdl中定义了所有的操作 soapAction="" ,所以我的服务也需要这样做。不幸的是,我发现了一个错误:

    A行动和 乙有 同样的动作。每次行动 必须具有唯一的操作值。

    在asmx web服务中,有一种模式不使用soapaction,而是使用request元素的名称。是否有某种方法可以使用wcf不仅在请求元素上进行分派,而且还可以在没有soapaction的情况下发出wsdl?

    1 回复  |  直到 14 年前
        1
  •  11
  •   Nix    14 年前

    这在asmx中是可能的,但开箱即用的wcf中找不到干净的方法,因为它使用操作将消息分派给操作。

    我认为您需要的技巧是将soapAction设置为“*”,然后编写 custom dispatcher .

    这样做的一个潜在副作用是一个糟糕的wsdl,如果需要公开wsdl,则必须生成/窃取它,然后使用 externalMetadataLocation attribute