잘 사용하던 페이지에서 오류가 발생했습니다. (.NET Framwork, 2.0 web form)
(다른 곳에서 관리하는 API를 호출하여 하루에 한번 데이터를 갱신하는 페이지)
오류는 아래와 같습니다.
- 전송 스트림에서 예기치 않은 EOF 또는 0바이트를 받았습니다.
- WebException: 기본 연결이 닫혔습니다. 보내기에서 예기치 않은 오류가 발생했습니다.
소스 수정도 없었고,
로컬 서버와, 프로덕션 서버는 정상적으로 동작하고 있었기에 소스 수정은 생각하지 않고 있었습니다.
서버 환경 문제로 생각하고 IIS 설정을 맞춰보았지만 별 소용이 없었습니다.
여러 검색 결과에서, TLS 버전 문제를 이야기합니다.
(이것도 서버 환경 문제로 발생한거 같긴 합니다. 언제, 왜 변경이 되었는지는 여러 명이 관리하는 개발 서버라 알 수 없네요)
해결을 위해,
- 프레임워크 버전은 올릴 수 없는 상황이고
- 해결 방법 소스로 검색한 코드. 하지만 저의 소스 버전에는 Tls12, Tls11 이 정의 되어있지 않습니다.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12| SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
그리하여, 아래 코드를 추가하여 해결하였습니다.
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
최종
using System.Net;
// ....
// WebRequest.Create 전에 SecurityProtocolType 추가
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
var webRequest = System.Net.WebRequest.Create("~~~");
'냐냐한 IT > 냐냐한 ASP.NET && MS-SQL' 카테고리의 다른 글
SQL Server : DTS_E_PRIMEOUTPUTFAILED (데이터 가져오기 중 오류) (1) | 2021.02.03 |
---|---|
Dapper 사용하기 (0) | 2020.10.26 |
SQL Server : Split 함수 (0) | 2020.10.26 |