为soapenv使用alternate名称空间

时间:2013-04-17 20:27:46

标签: wcf namespaces

我们公司认为它使用的是有效的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名称空间声明。当我将其更改为正确的soap 1.1命名空间时,WCF会识别该请求并开始处理该消息。

以下是我们熟悉的正确声明: 的xmlns:CFG-ENV = “http://schemas.xmlsoap.org/soap/envelope/”

当我将这个名称空间声明用于典型的soapenv前缀时,这里是cfg-env,WCF识别请求消息。

有没有办法更改WCF以识别这个不正确的soapenv名称空间声明,这样我的消息就会被识别而不做修改?

鉴于此要求,我将不得不更改请求消息cfg-env命名空间声明。对我来说,保留请求消息并且没有任何改变以使其起作用将是有帮助的。

是否可以在WCF中应用备用名称空间声明,以及如何适应这种情况?

2 个答案:

答案 0 :(得分:0)

不,那是不可能的。贵公司所生产的只不是SOAP。

答案 1 :(得分:0)

这是可能的,但它不是配置。

看一下这篇文章:

http://vanacosmin.ro/Articles/Read/WCFEnvelopeNamespacePrefix

您可以在此处找到如何在服务器端执行此操作,但如果您使用ApplyClientBehavior而不是ApplyDispatchBehavior,则可以配置相同的MessageFormatter以在WCF客户端应用程序上运行。