2010-10-28 1 views
5

У меня есть функция, которая использует MSXML для публикации XML-документа, который вчера начал сбой, несмотря на то, что код не был внесен в него. Функция выглядит следующим образом:MSXML «Система не может найти указанный ресурс»

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 

документ XML и адрес передаются в обеих правильно - линия, которая вызывает ошибку в xmlHTTP.send(xmlDoc). Я пробовал это на двух разных машинах с одинаковой ошибкой каждый раз, а также пробовал смолировать MSXML3, без успеха.

Исключение брошено является:

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" 

ответ

9

Оказалось, что проблема сети - я не подозревал об этом на первый, как ошибка была поднята настолько быстро, что не предлагал вопрос с конечной точкой , Проблема заключалась в том, что правило, которое было добавлено (не спрашивайте, почему), брандмауэру предотвращает связь с адресом назначения.

+1

вверх! просто заставило меня избавить меня от ненужной отладки – idanshmu

+0

Спасибо, что вел меня в правильном направлении. Первоначально сообщение об ошибке заставило меня подумать, что мне не удастся снять разрешения на сам объект COMS. Но ошибка просто означала, что объект xmlhttp не смог успешно подключиться к URL-адресу. – WWC

+0

Мы только что спустили сервер. Другой сервер пытался сделать запрос XMLHTTP на этот сервер, и мы получили эту же ошибку msxml3.dll. Я бы не поставил 2 и 2 вместе на сообщение об ошибке, больше похоже на проблему локального сервера с DLL, чем DLL, неспособная найти сервер, который он искал. Хорошо знать. –

0

Если вы только обработки XML или DTD отсутствует, вы можете использовать: xmlDoc.resolveExternals = False