【发布时间】:2012-07-28 10:12:59
【问题描述】:
我在 VB 宏 (excel) 中使用 MSXML.HTTPRequest 对象与 HTTP 服务器进行通信。问题是它间歇性地抛出以下错误。
msxml3.dll -2146697211 系统找不到资源 指定。
我在我的系统上注意到,当网络出现故障时会发生这种情况,但我的客户抱怨它在他的机器上间歇性地发生。鉴于他的系统安装了 Windows 7 并且有时可以运行,我认为这不是未安装正确库的问题。他在几个网络上尝试过,但仍然失败。
Function xmlHTTPPost(strURL, strData)
Dim objHttp
On Error Resume Next
xmlHTTPPost = ""
Set objHttp = CreateObject("Microsoft.XMLHTTP")
If Err.Number <> 0 Then
Err.Clear
Set objHttp = CreateObject("MSXML2.XMLHTTP")
End If
If Err.Number <> 0 Then
MsgBox "Error creating XMLHTTP object"
Err.Clear
Exit Function
End If
objHttp.Open "GET", strURL, False
If Err.Number <> 0 Then
Err.Clear
Set objHttp = Nothing
Exit Function
End If
objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttp.setRequestHeader "User-Agent", "Mozilla Compatible (MS IE 3.01 WinNT)"
objHttp.Send
If Err.Number <> 0 Then
MsgBox "Error " & Hex(Err.number) & " sending to server:" & vbCrLf & Err.description
xmlHTTPPost = "ERROR: " & Err.Source & " " & Err.Number & " " & Err.Description
Err.Clear
Else
xmlHTTPPost = objHttp.responseText
End If
Set objHttp = Nothing
End Function
它在我的机器上运行良好,这是一个 Windows 7 + Microsoft Office 2007 安装。
我在网上搜索了很多,模糊地提到了两个原因。
- 由于代理或防火墙导致的网络问题。在这种情况下,它不应该连接,而不是间歇性连接。
- 库安装问题。同样,它根本不应该工作,但事实并非如此。
【问题讨论】:
-
在您不在现场时调试用户的 Internet 连接问题绝非易事。这确实是本地 LAN 管理员需要解决的问题。
-
-2146697211 是 0x800C0005。相关:stackoverflow.com/questions/4355896/…
-
@AndrewLeach - 我看过了。这是一个稍微不同的场景,但我正在尝试在客户端验证这一点。
标签: excel vba vbscript xmlhttprequest msxml