2010-10-28 22 views
5

Ich habe eine Funktion, die MSXML verwendet, um ein XML-Dokument zu posten, das gestern gestartet wurde, obwohl keine Änderungen am Code vorgenommen wurden. Die Funktion ist wie folgt:MSXML "Das System kann die angegebene Ressource nicht finden"

Public Function PostFile(ByVal address As String, ByVal data As Byte()) As xmldocument 
    Dim xmlHTTP As New MSXML2.XMLHTTP 
    Dim response As New XmlDocument 

    Dim xmlDoc As New MSXML2.DOMDocument 

    Try 
     xmlDoc.load(data) 
     xmlHTTP.open("post", address, False) 
     xmlHTTP.send(xmlDoc) 

     If xmlHTTP.responseXML.xml <> String.Empty Then 
      response.LoadXml(xmlHTTP.responseXML.xml) 
      Return response 
     Else 
      Dim result As String = "<NO_Response><Error>the post succeeded to " + address + " but there was no responce returned</Error><Hint>Check FireWall Settings</Hint></NO_Response>" 
      response.loadxml(result) 
      Return response 
     End If 

    Catch ex As Exception 
     'Error logging code removed 

    End Try 
    Return Nothing 
End Function 

Das XML-Dokument und die Adresse übergeben wird in beide korrekt sind - die Linie, die den Fehler verursacht, ist xmlHTTP.send(xmlDoc). Ich habe dies auf 2 verschiedenen Maschinen mit dem gleichen Fehler jedes Mal ausprobiert und habe auch versucht, MSXML3 resinstalling, mit keinem Erfolg.

die Ausnahme ausgelöst wird:

InnerException: Nothing 
Message:  "The system cannot locate the resource specified. " 
Source:   "msxml3.dll"  
StackTrace:  " at MSXML2.XMLHTTPClass.send(Object varBody) at comms.HTTPHandler.PostFile(String address, Byte[] data) in D:\SCC\Main\Sender\Http.vb:line 42" 

Antwort

9

Es stellte sich heraus ein Netzwerkproblem zu sein - ich dies zunächst nicht vermuten, wie der Fehler so schnell angehoben wurde, die mit dem Endpunkt nicht ein Problem vorschlagen . Das Problem war mit einer Regel, die der Firewall hinzugefügt wurde (frag nicht warum), die Kommunikation mit der Zieladresse zu verhindern.

+1

up! nur weil es mir unnötiges Debugging erspart hat – idanshmu

+0

Danke, dass du mich in die richtige Richtung gelenkt hast. Die Fehlermeldung ließ mich zunächst denken, dass ich die Berechtigungen für das COMS-Objekt selbst erledigte. Der Fehler bedeutete jedoch nur, dass das Objekt xmlhttp nicht erfolgreich mit der URL verbunden werden konnte. – WWC

+0

Wir hatten gerade einen Server runter gehen. Ein anderer Server hat versucht, eine XMLHTTP-Anfrage an diesen Server zu senden, und wir haben denselben msxml3.dll-Fehler erhalten. Ich hätte nicht 2 und 2 zusammen basierend auf der Fehlermeldung, schien mehr wie ein Problem mit dem lokalen Server mit der DLL als die DLL nicht in der Lage, den Server zu finden, die es suchte. Gut zu wissen. –

0

Wenn Sie nur die xml oder dtd verarbeiten ist offline, können Sie verwenden: xmlDoc.resolveExternals = False

Verwandte Themen