>

RestSharp와 함께 매우 간단한 웹 요청이 있습니다 :

var client = new RestClient("https://website.net");
var request = new RestRequest("/process", Method.GET);
request.AddParameter("cmd", "execute");
IRestResponse response = client.Execute(request);
var content = response.Content;
Console.WriteLine("Response: " + content);

이것은 오류 메시지를 반환합니다 :

The request was aborted: Could not create SSL/TLS secure channel

세가지 :

<올>
  • 브라우저를 통해 예상되는 응답을 얻습니다.
  • 우체국을 통해 예상되는 답변을받습니다
  • 이 요청은 테스트 환경으로 전송되지만 매우 유사한 주소를 가진 프로덕션 환경으로 보내서 예상되는 응답을 얻을 수 있습니다
  • 오늘 전에 효과가 있었어요.
  • 인증서에서 AES 128과 함께 TLS 1.2를 사용하므로 RC4로 인한 오류와 관련이 없습니다.

    이것은 Visual Studio 2015의 로컬 Win 10 컴퓨터에 대상 프레임 워크가 .NET 4.5.2입니다.

    이 오류가 발생하는 이유는 무엇입니까?

    수정 :

    기본 System.Net 및 WebRequest 클래스를 사용하도록 코드를 변경하고 다음 줄을 추가하면 :

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    
    

    에서 제안한대로 여기 에서 작동합니다. 어떤 이유로 RestSharp가 잘못된 프로토콜을 사용하고 있다고 생각하십니까?


    • 답변 # 1

      .NET 4.5에서는 TLS 1.2를 사용할 수 있지만 기본적으로 활성화되어 있지 않습니다.

      그렇습니다. 1.2가 필요한 경우 .NET 런타임에 어떤 방식 으로든 지정해야합니다.

      참고로 : .NET 4.7에서 .NET은 OS의 기본 SSL/TLS 버전을 사용합니다 (대부분의 최신 OS는 기본적으로 TLS 1.2를 갖습니다)

      <시간>

      다른 좋은 답변 :

      .NET 4.5의 기본 보안 프로토콜

    • 답변 # 2

      이 줄을 이동하십시오 : ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

      이 줄 앞에 : WebRequest request = WebRequest.Create (url);

      도움이됩니다.

    관련 자료

  • 이전 DELPHI 선언 문제
  • 다음 Python - 파이썬 - 레이블로 산점도 색상을 플롯으로 할당