无法为 SSL/TLS C# Web 服务客户端建立安全通道

Could not establish secure channel for SSL/TLS C# Web service Client

我有一个 WPF 应用程序,它在同一个基础 URL 上调用 4 个 Web 服务(用 Java 编写),在我安装 google [=19] 之前它一直运行良好=].我安装了 chrome 但我遇到了这个错误:

Could not establish secure channel for SSL/TLS C# Web service

我没有再写代码。发生这种情况是因为我安装了 chrome 然后删除了 chrome 但没有用,我尝试了系统还原,卸载了 eset smart security 并清除了所有 windows(8.1 单一语言)证书。那我怎么弄明白呢?这是我的网络服务调用者

public string call(string url, string json)
{
    try
    {
        var webrequest = (HttpWebRequest)WebRequest.Create(url);
        var key = JsonConvert.SerializeObject(LoginService.SessionData.SessionKey);
        UTF8Encoding uTF8Encoding = new UTF8Encoding();
        byte[] requestBytes = uTF8Encoding.GetBytes(json);
        WebClient client = new WebClient();

        webrequest.Method = "POST";
        webrequest.Headers.Add("SESSION_KEY", LoginService.SessionData.SessionKey);
        webrequest.ContentType = "application/json";
        webrequest.ContentLength = requestBytes.LongLength;
        Stream requestStream = webrequest.GetRequestStream();//here the exception
        requestStream.Write(requestBytes, 0, requestBytes.Length);

        using (var response = webrequest.GetResponse())
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            var responseBuf = reader.ReadToEnd();
            String responseJson = Convert.ToString(responseBuf);
            return responseJson;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    return null;
}

根据我的观察,在过去几个月中有大量服务正在关闭 SSL and/or 较旧的 TLS 版本以减轻它们固有的安全问题。

在 AppDomain 中的任何地方,您都可以像这样强制连接使用 TLS 1.2:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

如果您还需要支持旧版本,您也可以 OR 合并多个版本:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12