在TLS 1.2之后,无法再从Classic ASP调用ASMX服务

时间:2018-03-20 18:16:40

标签: asp.net asp-classic asmx application-pool

我们有一个主要是Webforms的网站,但仍然包含用Classic ASP编写的一组页面,共享一个目录结构。这些经典页面使用asp.net端的asmx服务来提取连接信息。这项工作已经适用多年,直到最近我们升级到TLS 1.2。现在我们在 xmlhttp.send DataToSend 语句中收到以下错误。

msxml3.dll错误' 80072efe' 与服务器的连接异常终止

我的研究表明,这是在占用相同进程或应用程序池时从另一个Classic页面调用一个Classic页面的结果。但我正在调用一个ASP.NET ASMX服务,这是一个不同的进程和池......对吗?

如果不重写经典页面,我该如何解决这个问题呢?

  

.NET Framework 4.5.2

     

IIS 7.5.7600.16385

     

Windows Server 2008 R2

Dim xmlhttp
Dim DataToSend
DataToSend="OrigId=XXXXX&OrigPassword=YYYYYY&ConnectionName=" & pConnectionName
Dim postUrl
postUrl = "https://" & Request.ServerVariables("server_name") & "/SSLWebServices/ConnectionLookUp.asmx/GetConnectionData"
Set xmlhttp = server.Createobject("MSXML2.serverXMLHTTP")
xmlhttp.setOption 2,13056
xmlhttp.Open "POST",postUrl,false
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"

xmlhttp.send DataToSend

dim strResponse
strResponse = xmlhttp.responseText

1 个答案:

答案 0 :(得分:1)

答案是 https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-a-default-secure-protocols-in。我们必须为64位和32位WinHttp注册表项添加值为0x00000800的DefaultSecureProtocols。它在支持文章中都有详细说明。