我们公司认为它正在使用有效的 SOAP。但是,他们将这个命名空间声明用于 soapenv 命名空间前缀:
xmlns:cfg-env="http://www.co.com/schemas/cfg-env/"
这体现在 xml/soap 请求消息中,如下所示:
<cfg-env:Envelope xmlns="http://www.co.com/schemas/CFX/" xmlns:cfg- env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfg-hdr="http://www.co.com/schemas/cfg-hdr/">
<cfg-env:Header>
开箱即用的 WCF 无法识别此肥皂命名空间声明。当我将其更改为正确的soap 1.1 命名空间时,WCF 会识别请求并开始处理消息。
这是我们都熟悉的正确声明:xmlns:cfg-env="http://schemas.xmlsoap.org/soap/envelope/"
当我将此命名空间声明用于典型的 soapenv 前缀时,这里是 cfg-env WCF 识别请求消息。
有没有办法改变 WCF 来识别这个不正确的 soapenv 命名空间声明,这样我的消息就可以在不修改的情况下被识别?
鉴于这是一项要求,我将不得不更改请求消息 cfg-env 命名空间声明。让请求消息保持完整而不做任何更改对我来说是有帮助的,这样才能正常工作。
是否可以在 WCF 中应用替代命名空间声明,以及如何适应这种情况?