MSXML2.ServerXMLHTTP 不在一台服务器上发送(返回?),但在所有其他服务器上发送(返回?)

MSXML2.ServerXMLHTTP not sending (returning?) on one server, but does on all others

我有一个 asp 经典页面,它在 Server 2008 上使用 MSXML2.ServerXMLHTTP。它已经投入生产十多年了。相同的代码在 2008 年服务器、2012 年服务器、2019 年服务器和 Windows 10 的精确副本上运行没有问题。这一定是最近发生了变化,因为它几乎每天都在使用,我们今天才收到有关它的报告。

它没有报错。我只是打电话给 MediaServiceRequest.Send,再也没有回来。我尝试过其他方法来创建对象,但它们都做同样的事情。 url 是与调用方位于同一服务器上的网页。

Set MediaServiceRequest = Server.CreateObject("MSXML2.ServerXMLHTTP")
'Set MediaServiceRequest = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
'Set MediaServiceRequest = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
'Set MediaServiceRequest = Server.CreateObject("WinHttp.WinMediaServiceRequest.5.1")
'Set MediaServiceRequest = Server.CreateObject("MSXML2.XMLHTTP")
'Set MediaServiceRequest = Server.CreateObject("Microsoft.XMLHTTP")
f.writeline(now & " Error:" & Err.Number)  --> Is 0 here
MediaServiceRequest.Open "POST", url, false
f.writeline(now & " Error:" & Err.Number)  --> Is 0 here
MediaServiceRequest.Send s
f.writeline(now & " Error:" & Err.Number)  --> Never gets here

我重新注册了 MSXML3 和 6,但没有任何变化。不管是 http 还是 https。当我将 url 和 s 内容放入浏览器时,它会正确响应。我还能检查什么?

编辑:2019 年 8 月 6 日 8:17 上午。我刚刚发现只要 url 不在同一台服务器上它就可以工作!我在同一台服务器上尝试了另一个网站,同样的问题。我在另一台服务器上尝试了我的另一个网站,它可以工作!阅读了一下之后,一种解决方法是在 IIS 中将 "Enable server-side debugging" 设置为 false,但现在就是这样设置的。

Microsoft 似乎也不建议在同一台服务器上使用 MSXML2.ServerXMLHTTP。那有什么选择呢??

编辑:2019 年 8 月 6 日 7:21 下午。我一直在努力

'Set MediaServiceRequest = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
Set MediaServiceRequest = Server.CreateObject("WinHttp.WinHTTPRequest.5.1")
'MediaServiceRequest.option(9) = 512 'and 128, 1024
MediaServiceRequest.Open "GET", "https://www.howsmyssl.com/a/check", false
MediaServiceRequest.Send 
f.writeline(now & " sentObject")
s = MediaServiceRequest.ResponseText
f.writeline(now & " howmyssl:" & s)

我已经切换了不同类型的对象和选项,但我无法从 howsmyssl.com 获得响应。我无法让 WinHttp.WinHTTPRequest.5.1 代替原始问题。无论我用 WinHttp.WinHTTPRequest.5.1 做什么,我仍然在事件日志中收到 Schannel 错误。我刚刚去了 SSLlabs.com,我们已经从 A 变成了 B!!我得看看这是怎么回事。

Ralpharama 在 TLS 和 SSLlabs 方面走在了正确的轨道上。当我用 SSLlabs.com 检查服务器时,我们以某种方式回到了 "B" 评级。我们 运行 IIS Crypto 工具并重新应用安全模板以将每个设置恢复到应有的位置。重新启动后,我们又遇到了 "A" 并且 MSXML2.ServerXMLHTTP 又开始工作了!