[AWS] Problem with .net soap interaction

Pascal Obry pascal at obry.net
Wed Feb 27 19:10:23 CET 2008


Hi Wiljan,

> I am trying to make soap calls work to IIS and I do not know much about 
> the internals just
> that .net was used to handle the soap calls in the web server.
> I now tried doing soap call using the aws.client routines, but all calls 
> are rejected.
> The reason for this is that the server does not seem to like then name 
> spaces in the soap body.
> 
> Normaly the aws routines send a soap body that looks like:
> <soap:Body>
> <awsns:GetMapsFromMapDatabase xmlns:awsns="http://soapaws/">
> <ocrID xsi:type="xsd:string">CK2913W01H0</ocrID>
> <sfcLotName xsi:type="xsd:string"></sfcLotName>
> <diffusionLotName xsi:type="xsd:string"></diffusionLotName>
> <processStep xsi:type="xsd:string"></processStep>
> <fileType xsi:type="xsd:string">Ibis XML</fileType>
> </awsns:GetMapsFromMapDatabase>
> </soap:Body>
> </soap:Envelope>

Hum, but this seems correct to me providing that xmlns is defined into 
the enclosing soap:Envelope. Do you confirm that this is the case?

For reference: http://www.w3schools.com/soap/soap_body.asp

State clearly that child of soap:body may be namespace-qualified.

> When I send this to the server, it fails. I tried various changes in the 
> xml with some hacking,
> but as soon there is something in front of the "GetMapsFromMapDatabase" 
> it always seems to fail.

Looks like a bug in the .NET implementation to me.

> Things seems to work when I remove the namespace things.
> Thus now I modified the soap-message package so it does not add the name 
> spaces when they are set
> to the empty name.
> Also I now use a namespace to build the payload:
>   MWH_Name_Space : constant SOAP.Name_Space.Object :=
>      Create ("", "http://compat-it.nl/wmv2/WebMapService/", "");
> This then gives the following soap body that seems to work fine:
> <soap:Body>
> <GetMapsFromMapDatabase xmlns="http://compat-it.nl/wmv2/WebMapService/">
> <ocrID xsi:type="xsd:string">CK2913W01H0</ocrID>
> <sfcLotName xsi:type="xsd:string"></sfcLotName>
> <diffusionLotName xsi:type="xsd:string"></diffusionLotName>
> <processStep xsi:type="xsd:string"></processStep>
> <fileType xsi:type="xsd:string">Ibis XML</fileType>
> </GetMapsFromMapDatabase>
> </soap:Body>
> 
> Currently, I do not understand the exact intentions of these name spaces.
> Do you think this is a good approach ?

You mean to remove the namespace? That's fine since it is conforming to 
the SOAP protocol, but it is just a workaround for a .NET bug.

> Do you want to integrate these changes in AWS ?

Not sure what you want to integrate as there is not patch attached. I do 
not remember all the details about the SOAP implementation...

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|              http://www.obry.net
--| "The best way to travel is by means of imagination"
--|
--| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595


More information about the AWS mailing list