wsdl indicates soap 1.1 namespace, but client composes soap 1.2 messages.

Unfortunately I'm not a .NET developer, however I was hoping this post could clear something up for me.
I've developed a web service with a wsdl file, which I'll post below, that a .NET client is consuming and creating an object from. My web service server can only read soap messages that are in soap 1.1 format. From what I can tell the .NET client is composing and sending requests in soap 1.2 format.
The offending tags in the soap message are the enclosing envelope tags:
<soap:Envelope...>...</soap:Envelope>
while my server expects:
<SOAP-ENV:Envelope...>...</SOAP-ENV:Envelope>
The wsdl file is referencing the soap 1.1 namespace which indicates to me that the .NET client would compose a message based on that. I will post my wsdl file below. The .NET client is coming from VB .NET. Is there a way to force the vb code to use a specific soap version? The developer tells me he's just using what is being generated from the wsdl file. Here is my wsdl file:
<?xml version="1.0"?>
<definitions name="SOD"
targetNamespace="urnTongue TiedOD"
xmlns:typens="urnTongue TiedOD"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlnsTongue Tiedoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlnsTongue Tiedoapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/" >
<!-- Types for search - result elements, directory categories -->
<types>
<xsdTongue Tiedchema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="urnTongue TiedOD">

<xsd:complexType name="SODSearchResult">
<xsd:all>
<xsd:element name="documentFiltering" type="xsd:boolean"/>
<xsd:element name="searchComments" type="xsdTongue Tiedtring"/>
<xsd:element name="estimatedTotalResultsCount" type="xsd:int"/>
<xsd:element name="estimateIsExact" type="xsd:boolean"/>
<xsd:element name="resultElements" type="typens:ResultElementArray"/>
<xsd:element name="searchQuery" type="xsdTongue Tiedtring"/>
<xsd:element name="startIndex" type="xsd:int"/>
<xsd:element name="endIndex" type="xsd:int"/>
<xsd:element name="searchTips" type="xsdTongue Tiedtring"/>
<xsd:element name="directoryCategories" type="typensBig SmileirectoryCategoryArray"/>
<xsd:element name="searchTime" type="xsdBig Smileouble"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ResultElement">
<xsd:all>
<xsd:element name="summary" type="xsdTongue Tiedtring"/>
<xsd:element name="URL" type="xsdTongue Tiedtring"/>
<xsd:element name="snippet" type="xsdTongue Tiedtring"/>
<xsd:element name="title" type="xsdTongue Tiedtring"/>
<xsd:element name="cachedSize" type="xsdTongue Tiedtring"/>
<xsd:element name="relatedInformationPresent" type="xsd:boolean"/>
<xsd:element name="hostName" type="xsdTongue Tiedtring"/>
<xsd:element name="directoryCategory" type="typensBig SmileirectoryCategory"/>
<xsd:element name="directoryTitle" type="xsdTongue Tiedtring"/>
</xsd:all>
</xsd:complexType>

<xsd:complexType name="ResultElementArray">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ResultElement[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DirectoryCategoryArray">
<xsd:complexContent>
<xsd:restriction base="soapenc:Array">
<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typensBig SmileirectoryCategory[]"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DirectoryCategory">
<xsd:all>
<xsd:element name="fullViewableName" type="xsdTongue Tiedtring"/>
<xsd:element name="specialEncoding" type="xsdTongue Tiedtring"/>
</xsd:all>
</xsd:complexType>
</xsdTongue Tiedchema>
</types>
<!-- Messages Web APIs -->

<message name="method_call_in_question">
<part name="username" type="xsdTongue Tiedtring"/>
<part name="password" type="xsdTongue Tiedtring"/>
<part name="xid" type="xsdTongue Tiedtring"/>
</message>
<message name="method_call_in_questionResponse">
<part name="return" type="xsd:base64Binary"/>
</message>
<!-- Port Web APIs, "SOD" -->
<portType name="SODPort">
<operation name="method_call_in_question">
<input message="typens:method_call_in_question"/>
<output message="typens:method_call_in_questionResponse"/>
</operation>
</portType>
<!-- Binding for Web APIs - RPC, SOAP over HTTP -->
<binding name="SODBinding" type="typensTongue TiedODPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="method_call_in_question">
<soapSurpriseperation style="rpc" soapAction="urnTongue TiedODAction"/>
<input>
<soap:body use="encoded"
namespace="urnTongue TiedOD"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="urnTongue TiedOD"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<!-- Endpoint-->
<service name="SODService">
<port name="SODPort" binding="typensTongue TiedODBinding">
<soap:address location="https://dev.endpoint.com/ws/"/>
</port>
</service>
</definitions>

Any suggestions and help would be very appreciated. Thanks.

[8063 byte] By [dave_mwi] at [2008-1-25]
# 1

If they are using Visual Studio 2005, try marking the Web Service with the WebServiceBindingAttribute telling it that it conforms to BasicProfile1_1. Like so:


<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
Public Class MyWebService
Inherits System.Web.Services.WebService

End Class


DavidM.Kean at 2007-8-21 > top of Msdn Tech,.NET Development,ASMX Web Services and XML Serialization...

.NET Development

Site Classified