msxml*.dll 错误 ‘80072f7d‘ 安全频道支持出错 解决方案

诡异的 msxml6.dll错误 '80072f7d'安全频道支持出错,用 SSLTools.exe 修复的方法无效!!!

'---------------------------------------------------------------

有如下简要 ASP 代码,用于获取网页链接返回内容:

vbscript 复制代码
'----- ASP 获取链接内容
Function GetBody(url) 
	dim ObjXML		
	Set ObjXML =server.CreateObject ("Msxml2.ServerXMLHTTP.6.0") 	'("WinHttp.WinHttpRequest.5.1")  '("Microsoft.XMLHTTP")        
		ObjXML.Open "Get", url, False, "", "" 		
		ObjXML.Send	'这里报	msxml6.dll错误 '80072f7d'安全频道支持出错		
		GetBody = ObjXML.ResponseText
	Set ObjXML = Nothing 		
End Function

在之前的所有机器上运行都正常,最近新开了一台CTYUN的,2016被我降级为 windows2008R2,结果获取http内容没问题,而之前获取https正常的代码全部没有了返回值,还会卡顿一下,测试了一晚上才发现是 .send 那里出现的问题,打开错误显示发现报错内容:"msxml6.dll 错误 '80072f7d'安全频道支持出错",

更换了所有版本的 ("Msxml2.ServerXMLHTTP.6.0") ("msxml2.xmlhttp.6.0") ("msxml2.xmlhttp.3.0") ("msxml2.xmlhttp") '("WinHttp.WinHttpRequest.5.1") 都是报这个错误,而用老的 '("Microsoft.XMLHTTP") 则卡顿更严重直接没有返回任何错误信息。

vbscript 复制代码
<%
call getXmlHttpVer()
Function getXmlHttpVer()
  dim i,xmlHttpVersions,xmlHttpVersion
  getXmlHttpVer = false
  xmlHttpVersions = Array("Microsoft.XMLHTTP", "MSXML2.XMLHTTP", "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.6.0")
  for i = ubound(xmlHttpVersions) to 0 step -1
   xmlHttpVersion = xmlHttpVersions(i)
		if isInstallObj(xmlHttpVersion) then 
			getXmlHttpVer = xmlHttpVersion 
			response.write i+1 & " ok:  " & xmlHttpVersion & "  is Install! </br>" & vbcrlf
			'Exit Function			
		end if
  next 
  

  
End Function

Function isInstallObj(objname)
  dim isInstall,obj
  On Error Resume Next
  set obj=server.CreateObject(objname)
  if Err then 
   isInstallObj = false : err.clear 
  else 
   isInstallObj=true:set obj = nothing
  end if
End Function

%>
<%
' 创建一个对象数组,包含不同版本的XMLHTTP对象
Dim objXMLHTTPVersions,objXMLHTTP
 objXMLHTTPVersions = Array("WinHttp.WinHttpRequest.5.1","Microsoft.XMLHTTP", "MSXML2.XMLHTTP", "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.6.0","Msxml2.ServerXMLHTTP",, "Msxml2.ServerXMLHTTP.3.0", "Msxml2.ServerXMLHTTP.4.0", "Msxml2.ServerXMLHTTP.5.0","Msxml2.ServerXMLHTTP.6.0")

' 遍历数组,尝试创建每个版本的对象
Dim i
For i = 0 To UBound(objXMLHTTPVersions)
    On Error Resume Next ' 启用错误忽略
    Set objXMLHTTP = Server.CreateObject(objXMLHTTPVersions(i))
    If Err.Number = 0 Then ' 如果没有错误,说明当前版本的对象被成功创建
        Response.Write("支持版本: " & objXMLHTTPVersions(i) & "<br>")
    Else
        Err.Clear ' 清除错误
    End If
    On Error GoTo 0 ' 恢复默认的错误处理
Next

' 清理对象
Set objXMLHTTP = Nothing

%>

查了一晚上AI都没解决,最后找到:解决安全频道支持出错,代码:80072F7D问题_win7 安全频道支持出错-CSDN博客,他的是VBS+("WinHttp.WinHttpRequest.5.1")故障,

我照着微软的解决方案:更新了 以在 Windows 中的 WinHTTP 中启用 TLS 1.1 和 TLS 1.2 作为默认安全协议 - Microsoft 支持

之中的方法二,仅添加了注册表项,重启服务器居然就可以获取https链接工作了!

WinHTTP 的解决方案对 XMLHTTP 一样有效,相当诡异!!!

如需修复的,懒得手动添加注册表的,可以使用简易工具: https://download.microsoft.com/download/0/6/5/0658B1A7-6D2E-474F-BC2C-D69E5B9E9A68/MicrosoftEasyFix51044.msi

---- 此记!

相关推荐
明月看潮生8 分钟前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
天天打码43 分钟前
Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
开发语言·前端·javascript·rust·开源
Petrichorzncu43 分钟前
Lua再学习
开发语言·学习·lua
AA-代码批发V哥1 小时前
正则表达式: 从基础到进阶的语法指南
java·开发语言·javascript·python·正则表达式
炯哈哈1 小时前
【上位机——MFC】序列化机制
开发语言·c++·mfc·上位机
蓝莓味柯基1 小时前
Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
开发语言·python·正则表达式
隐世11 小时前
C++多态讲解
开发语言·c++
码上飞扬2 小时前
Java大师成长计划之第20天:Spring Framework基础
java·开发语言
刚入门的大一新生2 小时前
C++初阶-string类的模拟实现1
开发语言·c++
Pluchon2 小时前
硅基计划2.0 学习总结 壹 Java初阶
java·开发语言·学习·算法