0

我正在尝试在经典 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,包含非标准端口号(例如https://somedomain.com:4433/restofurl

当我在网络浏览器中运行 url 时,它们加载得很好,但是当我通过上述函数将它们放入时,我得到:

A connection with the server could not be established

我已经使用以下替代方法检查了我的功能:1) 非安全 URL - 这工作正常 2) 没有指定端口的安全 URL - 这工作正常 3) 指定端口 443 的安全 URL - 这工作正常 4) 安全URL 在目标服务器上指定端口 443 - 这工作正常

在此基础上,我确信我的代码是正确的。有人对进一步的故障排除有任何建议吗?

4

2 回答 2

1

问题被证明与我们的服务器太旧(仍在运行 Win2003)有关,并且它们的设置比端口号建议的更不标准!

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

于 2013-04-09T11:13:56.277 回答
0

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

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

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
于 2013-02-28T15:03:46.997 回答