Der folgende Code funktioniert nicht für mich auf Win Server 2003 Maschine, sondern funktioniert auf XP. Ich habe SOAP Toolkit 3.0 installiert auf dem Server installiert. Was könnte ein Grund sein?Verbrauchen Webservice in klassischen ASP
Der folgende Code funktioniert nicht für mich auf Win Server 2003 Maschine, sondern funktioniert auf XP. Ich habe SOAP Toolkit 3.0 installiert auf dem Server installiert. Was könnte ein Grund sein?Verbrauchen Webservice in klassischen ASP
‚Dies ist eine weitere Möglichkeit, .NET Web-Service im klassischen ASP zu konsumieren.
<html>
<head><title></title></head>
<body>
<%
Dim objHTTP, strEnvelope
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
'Create the SOAP Envelope.
'Start with standard xml name space and XML Schema Definition.
strEnvelope = "<?xml version='1.0' encoding='utf-8'?>"
strEnvelope = strEnvelope & "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"
'Define body of SOAP with method name and parameter names and vlaues to be passed.
strEnvelope = strEnvelope & "<soap:Body>"
strEnvelope = strEnvelope & "<AuthenticateUser xmlns='http://wwwte.abc.com/cpp'>"
strEnvelope = strEnvelope & "<db>1</db>"
strEnvelope = strEnvelope & "<_username>MYUSERNAME</_username>"
strEnvelope = strEnvelope & "<_password>MYPASSWORD</_password>"
strEnvelope = strEnvelope & "</AuthenticateUser>"
strEnvelope = strEnvelope & "</soap:Body></soap:Envelope>"
'Set properties of HTTP object and send SOAP envelop while calling 'Send' method
Dim url
url = "http://cpp.abc.com/cpp/CPPLDAP/CPPLDAP.asmx"
With objHTTP
.Open "post", url, False
.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
.setRequestHeader "SOAPAction", "http://wwwte.abc.com/cpp/AuthenticateUser"
.send strEnvelope
End With
' Following will write xml received from web services in the browser
Dim strResponse
strResponse = objHTTP.responseXML.Text
If (strResponse = "") Then
Response.Write("Invalid user")
Else
Set myXmlDoc = Server.CreateObject("MSXML2.DOMDocument")
myXmlDoc.loadXML (strResponse)
Set objLst = myXmlDoc.getElementsByTagName("directoryEntry")
Set objListNodes = objLst.Context.childNodes(0).childNodes
For i = 0 To (objListNodes.Length - 1)
Response.Write(objListNodes.Item(i).nodeName & ":------ " & objListNodes.Item(i).Text)
Response.Write("</BR>")
Next
End If
%>
</body>
</html>
es ist schön, eine vollständige Antwort zu haben, aber bitte überprüfen Sie diese [http://stackoverflow.com/a/11251/443685] Warnung über Microsoft.XMLHTTP –
Haben Sie versucht, das Skript auf der Außenseite von IIS Server 2003 Windows-Maschine ausgeführt wird, das heißt ersetzen Server.CreateObject mit Create und Response.Write mit MsgBox und als VBS speichern? Das sollte Ihnen sagen, ob der Server in der Lage ist, die Objekte zu erstellen, ohne dass IIS beteiligt ist. – boflynn
Ich habe den Code in der .vbs-Datei ausprobiert. Es gibt mir Fehler als: ActiveX-Komponente kann kein Objekt erstellen: "MSSOAP.SoapClient30" –
Ich habe ein ähnliches Problem mit Windows Server 2008 64 Bit. Ist dein Server, der das Problem hat, auch 64 Bit? –