我们正在使用COM对象(从Classic ASP Web应用程序调用)来进行Web服务调用。最近,Web服务禁用了TLS1.0。我们已经将COM对象更新为.NET 4.6.2,并添加了以下代码:
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
ServicePointManager.ServerCertificateValidationCallback = AddressOf AcceptAllCertifications ' This function returns true
然后使用X509Certificate2
对象使用自定义证书(由Web服务公司发行)发出SOAP请求。
在控制台应用程序中运行时,一切正常。但是,当从经典ASP中注册并调用DLL时,将引发以下异常:
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
很不幸。我们尝试过的事情:
KeepAlive
设置为True
有什么想法吗?