tags:

views:

1002

answers:

2

Following code does not work for me on Win Server 2003 machine but works on XP. I have installed SOAP Toolkit 3.0 installed on server. What could be a reason?

<%

     Dim oSOAP      
     Dim objDOMDoc
     Dim objResponse
     Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30")
     oSOAP.ClientProperty("ServerHTTPRequest") = True
     oSOAP.mssoapinit("http://cpp.cisco.com/cpp/CPPLDAP/CPPLDAP.asmx?wsdl")     
     Set objDOMDoc = Server.CreateObject("Msxml2.DOMDocument.4.0")
     objResponse = objDOMDoc.loadXML(CStr(oSOAP.AuthenticateCiscoUser(1,"MYUSERNAME","MYPASSWORD")))
     Response.Write(objResponse)

%>

A: 

This code fails on line Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30") Error: Could not create object for ActiveX control. DO i need to manually register a libraries? If So, what are those libraries I have to install on server?

pankaj gharge
I has a similar issue with Windows Server 2008 64 bit. Is your server that is having the problem also 64 bit?
KenB
+1  A: 

'Here is another way to consume .NET web service in classic ASP.

<%
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/'&gt;"

'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'&gt;"
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

%>

pankaj gharge