2009-04-20 18 views
1

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

+0

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

+0

Ich habe den Code in der .vbs-Datei ausprobiert. Es gibt mir Fehler als: ActiveX-Komponente kann kein Objekt erstellen: "MSSOAP.SoapClient30" –

+0

Ich habe ein ähnliches Problem mit Windows Server 2008 64 Bit. Ist dein Server, der das Problem hat, auch 64 Bit? –

Antwort

4

‚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> 
+0

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 –