Mam funkcję, która używa MSXML do publikowania dokumentu XML, który wczoraj zaczął się nie udać pomimo braku zmian w kodzie. Funkcja jest następujący:MSXML "System nie może zlokalizować określonego zasobu"
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
Dokument XML i adres były przekazywane w obie są poprawne - linia, która powoduje, że błąd jest xmlHTTP.send(xmlDoc)
. Próbowałem tego na 2 różnych maszynach z tym samym błędem za każdym razem, a także próbowałem ponownie zainstalować MSXML3, bez powodzenia.
Wyjątek rzucony jest:
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! tylko dlatego, że zaoszczędziło mi zbędnego debugowania – idanshmu
Dziękuję za skierowanie mnie we właściwym kierunku. Komunikat o błędzie początkowo sprawił, że pomyślałem, że będę musiał mieć problemy z wykonaniem uprawnień do obiektu COMS. Ale błąd oznaczał, że obiekt xmlhttp nie mógł połączyć się z adresem URL. – WWC
Po prostu zmarnowaliśmy serwer. Inny serwer próbował wykonać żądanie XMLHTTP na ten serwer i otrzymaliśmy ten sam błąd msxml3.dll. Nie wstawiłbym 2 i 2 razem w oparciu o komunikat o błędzie, wydawał się bardziej jak problem serwera lokalnego z DLL, niż DLL nie może znaleźć serwera, którego szukał. Dobrze wiedzieć. –