2013-04-17 38 views
0

我們公司認爲它使用有效的SOAP。然而,他們利用這種空間聲明中的soapenv命名空間前綴:使用備用命名空間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中應用備用命名空間聲明,以及如何適應此?

回答

0

不,這是不可能的。你的公司正在生產的東西根本不是SOAP。

0

這是可能的,但它不是一個配置。

看看這篇文章:

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

在這裏你可以找到如何做到這一點在服務器端,但是如果你使用的不是ApplyDispatchBehavior ApplyClientBehavior您可以配置相同MessageFormatter上運行您的WCF客戶端應用程序。