Ik maak met de volgende code een soapcall naar een lokale webservice:
KentekenString is kennelijk een geldig bericht want de soap-service accepteert het. Met een TCP sniffer kan ik zien dat het volgende bericht over de lijn gaat:
Echter op de regel waar ik dus het resultaat van die soapcall wil opvangen loopt het fout met de volgende melding:
Runtimefout Microsoft VBScript error '800a01c2'
Onjuist aantal argumenten of ongeldige eigenschaptoewijzingen
Oftewel de soap call gaat goed maar ik kan het resultaat niet opvangen. Iemand enig idee hoe dit kan? Ik heb het eerder meegemaakt maar nooit een oplossing gevonden. Enige oplossing die ik weet is een POST maken met server.XMLhttp maar dat is niet de bedoeling.
De alleronderste regel van het bericht wat ik over de lijn zie gaan gaat het mij om (die xml met voertuiggegevens)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| WSDL = "http://server-03/ws_prod/services/momservice.asmx?wsdl" SoapService = "MomService" SoapPort = "MomServiceSoap" Set SoapClient = Server.CreateObject("MSSOAP.SoapClient30") SoapClient.ClientProperty("ServerHTTPRequest") = True Call SoapClient.mssoapinit (WSDL, SoapService, SoapPort) If Err <> 0 Then Response.write "initialization failed " & Err.Description Else Set xmlResponse = Server.CreateObject("MSXML.DOMDocument") a = SoapClient.SendMessage(KentekenString) Response.Write(xmlResponse.XML) Set xmlResponse = Nothing End If Set SoapClient = Nothing |
KentekenString is kennelijk een geldig bericht want de soap-service accepteert het. Met een TCP sniffer kan ik zien dat het volgende bericht over de lijn gaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
| HTTP/1.1 200 OK Date: Fri, 31 Aug 2007 08:39:21 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Length: 2785 <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://schemas.ccs.nl/services/momservice" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://schemas.ccs.nl/services/momservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://schemas.ccs.nl/services/momservice"> <s:element name="SendMessage"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="request"> <s:complexType mixed="true"> <s:sequence> <s:any /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> <s:element name="SendMessageResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="SendMessageResult"> <s:complexType mixed="true"> <s:sequence> <s:any /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> <wsdl:message name="SendMessageSoapIn"> <wsdl:part name="parameters" element="tns:SendMessage" /> </wsdl:message> <wsdl:message name="SendMessageSoapOut"> <wsdl:part name="parameters" element="tns:SendMessageResponse" /> </wsdl:message> <wsdl:portType name="MomServiceSoap"> <wsdl:operation name="SendMessage"> <wsdl:input message="tns:SendMessageSoapIn" /> <wsdl:output message="tns:SendMessageSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MomServiceSoap" type="tns:MomServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <wsdl:operation name="SendMessage"> <soap:operation soapAction="http://schemas.ccs.nl/services/momservice/SendMessage" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MomService"> <wsdl:port name="MomServiceSoap" binding="tns:MomServiceSoap"> <soap:address location="http://server-03/ws_prod/services/momservice.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions>HTTP/1.1 200 OK Date: Fri, 31 Aug 2007 08:39:25 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Cache-Control: private, max-age=0 Content-Type: text/xml; charset=utf-8 Content-Length: 1305 <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><SendMessageResponse xmlns="http://schemas.ccs.nl/services/momservice"><SendMessageResult><envelope senderid="bo" receiverid="fo" xmlns=""><header><medewerker><naam>xxx</naam><wachtwoord>xxxx</wachtwoord><account>xx</account><bedrijfsnummer>2</bedrijfsnummer><tussenpersoonnummer>999</tussenpersoonnummer><meerderetp /></medewerker><date /><processtime>3500</processtime></header><response><action name="voertuiggegevensisa" order="1"><resultaat dt="log" ro="y">Ja</resultaat><mr dt="obj"><bouwjaar dt="int">1999</bouwjaar><brandstofcode dt="chr">D</brandstofcode><carrosserietype dt="chr">SE4</carrosserietype><cylinderinhoud dt="int">2460</cylinderinhoud><dagwaarde dt="int">4800</dagwaarde><gewicht dt="int">1604</gewicht><isagebruik dt="chr">J</isagebruik><merk dt="chr">VOLVO</merk><merkalarm dt="chr">00</merkalarm><model dt="chr">S80</model><motorvermogen dt="int">103</motorvermogen><type dt="chr">2.5 D AUT</type><verzekerdbedragcasco dt="int">43200</verzekerdbedragcasco></mr></action></response></envelope></SendMessageResult></SendMessageResponse></soap:Body></soap:Envelope> |
Echter op de regel waar ik dus het resultaat van die soapcall wil opvangen loopt het fout met de volgende melding:
Runtimefout Microsoft VBScript error '800a01c2'
Onjuist aantal argumenten of ongeldige eigenschaptoewijzingen
Oftewel de soap call gaat goed maar ik kan het resultaat niet opvangen. Iemand enig idee hoe dit kan? Ik heb het eerder meegemaakt maar nooit een oplossing gevonden. Enige oplossing die ik weet is een POST maken met server.XMLhttp maar dat is niet de bedoeling.
De alleronderste regel van het bericht wat ik over de lijn zie gaan gaat het mij om (die xml met voertuiggegevens)
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.