Ho una funzione che utilizza MSXML per pubblicare un documento XML che ieri ha iniziato a mancare nonostante non siano state apportate modifiche al codice. La funzione è la seguente:MSXML "Il sistema non è in grado di individuare la risorsa specificata"
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
Il documento XML e l'indirizzo vengono passati entrambi sono corrette - la linea che causa l'errore è xmlHTTP.send(xmlDoc)
. Ho provato questo su 2 macchine diverse con lo stesso errore ogni volta e ho anche provato a resettare MSXML3, senza successo.
L'eccezione generata è:
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"
up! solo perché mi ha salvato il debugging inutile – idanshmu
Grazie per avermi guidato nella giusta direzione. Inizialmente il messaggio di errore mi ha fatto pensare che avrei dovuto risolvere i problemi con le autorizzazioni all'oggetto COMS stesso. Ma l'errore voleva dire che l'oggetto xmlhttp non era in grado di connettersi correttamente all'url. – WWC
Abbiamo appena avuto un server inattivo. Un altro server stava tentando di fare una richiesta XMLHTTP a quel server e abbiamo ottenuto lo stesso errore msxml3.dll. Non avrei messo insieme 2 e 2 in base al messaggio di errore, sembrava più un problema di un server locale con la DLL che la DLL non riusciva a trovare il server che cercava. Buono a sapersi. –