我有一个函数,它使用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"发布于 2010-11-01 16:32:48
这被证明是一个网络问题--我一开始并没有怀疑到这一点,因为这个错误提出得如此之快,并不意味着端点有问题。问题出在防火墙中添加了一个规则(不要问为什么),该规则阻止了与目标地址的通信。
发布于 2016-07-29 11:52:20
如果您正在处理xml或dtd处于脱机状态,则可以使用: xmlDoc.resolveExternals = False
https://stackoverflow.com/questions/4041687
复制相似问题