Asp classic ServerXMLHTTP连接问题

Asp classic ServerXMLHTTP连接问题,asp-classic,https,serverxmlhttp,Asp Classic,Https,Serverxmlhttp,我正在尝试在经典ASP中构建一个网页,以检查一系列URL的状态 我的代码如下: Function TestSite(sURL) UserAgent = "Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1)" Set poster = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") poster.open "GET", sURL, false poster.setRequestHe

我正在尝试在经典ASP中构建一个网页,以检查一系列URL的状态

我的代码如下:

Function TestSite(sURL)

  UserAgent = "Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1)"

  Set poster = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
  poster.open "GET", sURL, false
  poster.setRequestHeader "User-Agent",UserAgent
  poster.send

  If poster.status = 200 Then
    TestSite = poster.responseText
  Else
    ' ## ERROR ## '
    TestSite = ""
  End If
  Set poster = Nothing
End Function
URL都是包含非标准端口号的HTTPS (例如)

当我在web浏览器中运行URL时,它们可以正常加载,但当我使用上述功能时,我得到:

A connection with the server could not be established
我已使用以下选项检查了我的函数: 1) 一个不安全的URL-这很好用 2) 没有指定端口的安全URL-这可以正常工作 3) 指定端口443的安全URL-这很好用 4) 在目标服务器上指定端口443的安全URL-这可以正常工作


基于此,我尽可能确信我的代码是正确的。有人对进一步的故障排除有什么建议吗?

这可能意味着运行您的代码的服务器没有与您发送请求的服务器相同的证书。而您正在使用的浏览器中确实有它们

您可以通过添加此代码(在发送请求之前,不按规定)并尝试某些值,使服务器忽略特定的证书问题来检查这一点:

Const SXH_SERVER_CERT_IGNORE_UNKNOWN_CA = 256
Const SXH_SERVER_CERT_IGNORE_WRONG_USAGE = 512
Const SXH_SERVER_CERT_IGNORE_CERT_CN_INVALID = 4096
Const SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID = 8192
Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056
poster.setOption 2, poster.getOption(2) - SXH_SERVER_CERT_IGNORE_CERT_DATE_INVALID

这个问题被证明与我们的服务器很旧(仍在运行Win2003)以及它们的设置比端口号显示的更不标准有关


最终的解决方案是在某个单独的主机上托管代码(在运行较新版本Windows的服务器上)。不太理想,但至少我们已经开始工作了。(我们将来也会进行服务器升级,这有望成为最终的解决方案。)

看一看。也可以考虑防火墙设置等,或者换言之,你的计算机可能正在阻止IIS与外部世界的连接。已经阅读了这个答案,而且在这个例子中不适用。没有服务器(据我所知)正在运行IIS7。只是尝试了所有这些,并且我仍然得到相同的错误。不过,谢谢你的建议。