You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSXML2.ServerXMLHTTP.6.0的.send方法在IIS经典ASP环境下报错排查

问题描述

本地运行以下ASP代码正常,但部署到开发服务器后,调用MSXML2.ServerXMLHTTP.6.0的.Send方法时出现错误-2147483638,错误描述为“完成此操作所需的数据尚未可用”,预期.Send方法可正常工作。

url = "https://auth.hstream.net/oauth2/token"
data = "grant_type=client_credentials"

Function PostTextFromUrl(url,authToken,data)
  On Error Resume Next

  Dim oXMLHTTP
  Dim sHTTPResponse, sHTTPStatus  

  Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") 

  oXMLHTTP.SetProxy 1
  oXMLHTTP.SetTimeouts 600000, 600000, 600000, 600000

  oXMLHTTP.Open "POST", url, False
  oXMLHTTP.setRequestHeader "Authorization", authToken 
  oXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
  oXMLHTTP.Send data

  response.write (Err.Number)
  response.write (Err.description)
  
  response.write (oXMLHTTP.status)

  sHTTPStatus =  oXMLHTTP.status
  sHTTPResponse = oXMLHTTP.responseText

  If Err.Number = 0 and sHTTPStatus = "200" and sHTTPResponse <> """{}""" Then
    PostTextFromUrl = sHTTPResponse
  Else
    PostTextFromUrl = HTTPErrorHandeler (HTTPStatus, HTTPResponse)
  End If
  On Error Goto 0

  Set oXMLHTTP = Nothing

  Set oXMLHTTP = Nothing
End Function
可能的服务器差异原因
  • 网络访问限制:开发服务器可能处于内网环境,无法直接访问外部HTTPS地址https://auth.hstream.net;或者代码中SetProxy 1使用的默认代理配置不正确(比如代理地址/端口未设置、代理需身份验证但未配置),导致请求无法获取响应数据。
  • 组件权限或注册问题:开发服务器上的MSXML2.ServerXMLHTTP.6.0组件未正确注册,或者IIS应用程序池的运行账户没有该组件的访问权限,本地环境则已完成注册并赋予权限。
  • SSL证书信任问题:目标地址为HTTPS,开发服务器的根证书存储中没有信任该站点的CA证书,或者站点证书过期、自签名,导致SSL连接建立失败,无法获取响应。
  • 安全软件/防火墙拦截:开发服务器上的防火墙、入侵检测系统或安全软件拦截了出站HTTPS请求,限制了对443端口的访问,导致请求提前终止,触发数据不可用错误。
  • 超时配置不匹配:虽然代码设置了600秒超时,但服务器网络环境比本地差,实际请求耗时超过了底层系统或网络设备的超时限制,请求被提前中断。
  • 编码格式差异:服务器系统编码与本地不同,导致data参数的编码不符合目标服务器要求,请求发送后未得到有效响应。

内容的提问来源于stack exchange,提问作者Spottedbass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:00:03