请求中止无法创建ssl / tls安全通道

时间:2018-09-19 04:30:10

标签: c#

我使用的是.net 4.0版本,并且在本地系统中运行良好,但是当托管在服务器中时,出现错误“请求被中止无法创建ssl / tls安全通道”错误。

如何解决?

public static string GetResponse(HttpWebRequest request)
{
    try
    {

        ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
        var response = (HttpWebResponse)request.GetResponse();
        var enc = System.Text.Encoding.GetEncoding("utf-8");
        var responseStream = new StreamReader(response.GetResponseStream(), enc);
        var result = string.Empty;
        result = responseStream.ReadToEnd();
        response.Close();
        return result;
    }
    catch (WebException ex)
    {
        Trace.WriteLine(ex.Message);
        return "";// ex.Message;
    }
    catch (Exception e)
    {
        Trace.WriteLine(e.Message);
        return "";// e.Message;
    }
}

2 个答案:

答案 0 :(得分:0)

您是否尝试过将.Net版本更新为4.6或更高版本。我怀疑您所连接的网站已升级了其Web服务器,并且已弃用.Net 4.0客户端用于连接的SSL方法。

答案 1 :(得分:0)

这将是更好的方法: ServicePointManager.SecurityProtocol |= (SecurityProtocolType) 3840; 与您专门设置TLS 1.2的情况不同,上述示例只是添加 TLS 1.1。和TLS 1.2。

或者,这也可能是由于证书错误,客户/服务器时间戳不正确以及许多其他问题所致。尝试在浏览器中打开它。可以吗?