Archana Palani Ответов: 0

Возможное несоответствие версий SOAP: пространство имен конвертов - SAP web service in C#


My requirement is connect C# to SAP through SAP Web service which created via SOAMANAGER.

when i executing the code i am getting the below Exception Message.

An unhandled exception of type 'System.Web.Services.Protocols.SoapException' 
occurred in System.Web.Services.dll

Additional information: Possible SOAP version mismatch: Envelope namespace 
http://schemas.xmlsoap.org/wsdl/ was unexpected. Expecting 
http://schemas.xmlsoap.org/soap/envelope/.


Here is my C# code:


NetworkCredential cred = new NetworkCredential();
        cred.UserName = "XXXXX";
        cred.Password = "*****";
        HELLO_WORLD_2_WSDL.z_HELLO_WORLD_2 hello_world = new HELLO_WORLD_2_WSDL.z_HELLO_WORLD_2();
        HELLO_WORLD_2_WSDL.ZTEST_WEB_SERVICE hello_world_input = new HELLO_WORLD_2_WSDL.ZTEST_WEB_SERVICE();
        HELLO_WORLD_2_WSDL.ZTEST_WEB_SERVICEResponse hello_world_response = new HELLO_WORLD_2_WSDL.ZTEST_WEB_SERVICEResponse();
        hello_world.Proxy = new WebProxy("domain", 8000);
        hello_world.PreAuthenticate = true;
        hello_world.Credentials = cred;
        hello_world_response = hello_world.ZTEST_WEB_SERVICE(hello_world_input);
        Console.WriteLine(hello_world_response.ToString());


Here is WSDL Code created via SOAMANAGER:


<pre> <?xml version="1.0" encoding="utf8" ?> 
  <wsdl:definitions targetNamespace="urn:sapcom:document:sap:rfc:functions" 

  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 

  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 

  xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/" 

  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 

  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 

  xmlns:tns="urn:sapcom:document:sap:rfc:functions" 

  xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
  <wsdl:documentation>
  <sidl:sidl xmlns:sidl="http://www.sap.com/2007/03/sidl" /> 
  </wsdl:documentation>
  <wsp:UsingPolicy wsdl:required="true" /> 
  <wsp:Policy wsu:Id="BN__Z_HELLO_WORLD_2">
 <wsp:Policy wsu:Id="IF__Z_hello_world_2">
 <wsp:ExactlyOne>
 <wsp:All>

 <wsp:Policy wsu:Id="OP__ZTEST_WEB_SERVICE">
 <wsp:ExactlyOne>
 <wsp:All>
  </wsp:ExactlyOne>
  </wsp:Policy>
 <wsdl:types>
 <xsd:schema attributeFormDefault="qualified" targetNamespace="urn:sapcom:document:sap:rfc:functions">
 <xsd:simpleType name="char20">
 <xsd:restriction base="xsd:string">
  <xsd:maxLength value="20" /> 
  </xsd:restriction>
  </xsd:simpleType>
 <xsd:element name="ZTEST_WEB_SERVICE">
 <xsd:complexType>
  <xsd:sequence /> 
  </xsd:complexType>
  </xsd:element>
 <xsd:element name="ZTEST_WEB_SERVICEResponse">
 <xsd:complexType>
 <xsd:sequence>
  <xsd:element name="O_MSG" type="tns:char20" /> 
  </xsd:sequence>
  </xsd:complexType>
  </xsd:element>
  </xsd:schema>
  </wsdl:types>
 <wsdl:message name="ZTEST_WEB_SERVICE">
  <wsdl:part name="parameters" element="tns:ZTEST_WEB_SERVICE" /> 
  </wsdl:message>
 <wsdl:message name="ZTEST_WEB_SERVICEResponse">
  <wsdl:part name="parameter" element="tns:ZTEST_WEB_SERVICEResponse" /> 
  </wsdl:message>
 <wsdl:portType name="Z_hello_world_2">
 <wsp:Policy>
  <wsp:PolicyReference URI="#IF__Z_hello_world_2" /> 
  </wsp:Policy>
 <wsdl:operation name="ZTEST_WEB_SERVICE">
 <wsp:Policy>
  <wsp:PolicyReference URI="#OP__ZTEST_WEB_SERVICE" /> 
  </wsp:Policy>
  <wsdl:input message="tns:ZTEST_WEB_SERVICE" /> 
  <wsdl:output message="tns:ZTEST_WEB_SERVICEResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
 <wsdl:binding name="Z_HELLO_WORLD_2" type="tns:Z_hello_world_2">
 <wsp:Policy>
  <wsp:PolicyReference URI="#BN__Z_HELLO_WORLD_2" /> 
  </wsp:Policy>
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
 <wsdl:operation name="ZTEST_WEB_SERVICE">
  <soap:operation soapAction="urn:sapcom:document:sap:rfc:functions:Z_hello_world_2:ZTEST_WEB_SERVICERequest" style="document" /> 
 <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
 <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
 <wsdl:binding name="Z_HELLO_WORLD_2_soap12" type="tns:Z_hello_world_2">
 <wsp:Policy>
  <wsp:PolicyReference URI="#BN__Z_HELLO_WORLD_2_soap12" /> 
  </wsp:Policy>
  <wsoap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> 
 <wsdl:operation name="ZTEST_WEB_SERVICE">
  <wsoap12:operation soapAction="urn:sapcom:document:sap:rfc:functions:Z_hello_world_2:ZTEST_WEB_SERVICERequest" style="document" /> 
 <wsdl:input>
  <wsoap12:body use="literal" /> 
  </wsdl:input>
 <wsdl:output>
  <wsoap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
 <wsdl:service name="z_HELLO_WORLD_2">
 <wsdl:port name="Z_HELLO_WORLD_2" binding="tns:Z_HELLO_WORLD_2">
  <soap:address location="http://domainXXX:8000/sap/bc/srt/rfc/sap/z_hello_world_2/199/z_hello_world_2/z_hello_world_2" /> 
  </wsdl:port>
 <wsdl:port name="Z_HELLO_WORLD_2_soap12" binding="tns:Z_HELLO_WORLD_2_soap12">
  <wsoap12:address location="http://domainXXX:8000/sap/bc/srt/rfc/sap/z_hello_world_2/199/z_hello_world_2/z_hello_world_2" /> 
  </wsdl:port>
  </wsdl:service>
      </wsdl:definitions>


Here i have cut shorted my XML code because its size big. Please help anyone to solve this.


Что я уже пробовал:

Я попробовал приведенный выше код на основе этого блога.https://blogs.sap.com/2013/03/08/create-an-sap-web-service-call-web-service-from-net-application-passing-user-credentials/

0 Ответов