代码之家  ›  专栏  ›  技术社区  ›  Macros

msxml“系统找不到指定的资源”

  •  6
  • Macros  · 技术社区  · 15 年前

    我有一个函数,它使用MSXML发布一个XML文档,尽管没有对代码做任何更改,但昨天开始失败。功能如下:

    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"
    
    2 回复  |  直到 10 年前
        1
  •  10
  •   Macros    15 年前

    结果发现这是一个网络问题——我一开始并不怀疑这一点,因为错误出现得太快,这并不意味着端点有问题。问题是添加到防火墙的规则(不要问为什么)阻止了与目标地址的通信。

        2
  •  0
  •   TeflonDon    10 年前

    如果只是处理XML或DTD处于脱机状态,则可以使用: xmldoc.resolveexternals=false