2017-10-30 2 views
0

私はwpfアプリケーションを持っており、同じベースURLに4 Webサービス(Written Java)を呼び出しています。私はこのエラー持っている:私は別のcode.Thatを書いていないSSL/TLS C#Webサービスクライアントのセキュリティで保護されたチャネルを確立できませんでした。クライアント

SSL/TLS C#のWebサービスのための安全なチャネルを確立できませんでした

をちょうど私がChromeをインストールし、その後、私はクロムを取り除くために起こりましたしかし、私はシステムの復元を試み、esetスマートセキュリティをアンインストールし、私はすべてのウィンドウ(8.1単一言語)の証明書をきれいにした。どのようにすることができます私はそれを把握する。ここに私のWebサービスの呼び出し側は、多数のサービスがそれらに固有のセキュリティ上の問題を軽減するためにSSLおよび/または古いTLSのバージョンをオフにしている最後の数ヶ月間がある私の観察では

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; 
} 
+0

Chromeをインストールした後に壊れたのは偶然のことだと思います。このサービスは、TLSを優先してSSLを無効にした可能性があります。 'ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12' – Crowcoder

+0

これはあなたに感謝しました。あなたの投稿に答えとして書くことができますか?しかし、私は何かを理解していない、私はシステムを復元し、彼らがなぜ動作しなかったすべてのcerticicateをきれいにした – tpbafk

+0

あなたはCloudflareを使用していますか?彼らはTLS 1.0/1.1昨夜のサポートを落とした –

答えて

0

です。

AnywhereはAppDomainの中のあなたはちょうどこのようTLS 1.2を使用するように接続を強制することができます

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

することもできますあなたにも古いものをサポートする必要がある場合OR一緒に複数のバージョン:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12

+0

私は1秒ごとに支払いを確認する方法がtrueまたはfalseですが、プロジェクトにコードを追加した後に、フィドラーで応答が表示されない場合はどうしたら応答/要求が表示されないのですか?どのように私はそれらを見ることができますか? – tpbafk

+0

すみません、わかりません。おそらくFiddlerを何とか設定する必要があるかもしれませんが、どうすればいいのか分かりません。 – Crowcoder

関連する問題

 関連する問題