【问题标题】:msxml3.dll error '80090326' The message received was unexpected or badly formattedmsxml3.dll 错误“80090326”收到的消息是意外的或格式错误
【发布时间】:2015-05-17 17:32:25
【问题描述】:
URL = "https://github.com/index.html"
Set xHttp = CreateObject("MSXML2.ServerXMLHTTP")
xHttp.Open "GET", URL, False
xHttp.setOption 2, 13056
xHttp.Send()

谁能告诉我为什么这段代码可以在 windows7 上运行,而不能在 windows XP 上运行

错误

msxml3.dll error '80090326' `
The message received was unexpected or badly formatted.`

xHttp.Send

【问题讨论】:

    标签: vbscript https windows-xp


    【解决方案1】:

    我最近在尝试通过 https 将文件检索到 Windows 2003 服务器时遇到了类似的问题。原来问题在于客户端支持的 SSL/TLS 密码集太旧了,以至于服务器上都不支持它们。

    在我的例子中,服务器位于 AWS ELB 后面,它正在执行 https 协商。我能够重新配置 ELB 以使用较旧的密码集(在“侦听器”选项卡中,将密码配置更改为使用 ELBSecurityPolicy-2015-05),并且客户端脚本神奇地开始工作。

    【讨论】:

      【解决方案2】:

      我们必须在 Windows 2003 服务器中安装以下 KB:

      https://support.microsoft.com/en-us/kb/948963

      在此之后,另一个错误:

      msxml3.dll 错误“80072f7d”

      安全通道支持发生错误

      感谢这篇文章 (server giving msxml3.dll error '80072f7d' when trying to access secure url) 安装了 http://support.microsoft.com/kb/938397 并正常工作。

      应用于生产时,只有第一个 KB 解决了问题。

      【讨论】:

        【解决方案3】:

        如果您将 MSXML2.ServerXMLHTTP 更改为 MSXML2.XMLHTTP 或 Microsoft.XMLHTTP 是否适合您?

        尝试使用此代码并告诉我们您是否遇到相同的错误(仅在 Windows 7 上测试)

        On Error Resume Next
         Set File = WScript.CreateObject("MSXML2.XMLHTTP")
         File.Open "GET", "https://github.com/index.html", False
         'This is IE 8 headers
         File.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; .NET4.0E; BCD2000; BCD2000)"
         File.Send
         If err.number <> 0 then 
            line =""
            Line  = Line &  vbcrlf & "" 
            Line  = Line &  vbcrlf & "Error getting file" 
            Line  = Line &  vbcrlf & "==================" 
            Line  = Line &  vbcrlf & "" 
            Line  = Line &  vbcrlf & "Error " & err.number & "(0x" & hex(err.number) & ") " & err.description 
            Line  = Line &  vbcrlf & "Source " & err.source 
            Line  = Line &  vbcrlf & "" 
            Line  = Line &  vbcrlf & "HTTP Error " & File.Status & " " & File.StatusText
            Line  = Line &  vbcrlf &  File.getAllResponseHeaders
            wscript.echo Line
            Err.clear
            wscript.quit
         End If
        
        On Error Goto 0
        
         Set BS = CreateObject("ADODB.Stream")
         Set ws = CreateObject("wscript.Shell")
         BS.type = 1
         BS.open
         BS.Write File.ResponseBody
         BS.SaveToFile "Location.html", 2
         ws.run "Location.html"
        

        【讨论】:

        • 是的,如果我将 MSXML2.ServerXMLHTTP 更改为 MSXML2.XMLHTTP 它对我有用。
        • 我用setoption,MSXML2.XMLHTTP写“对象不支持这个属性或方法”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 2014-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多