728x90
근래 몇 년간 웹서비스로 개발된 API 들은 항상 웹폼에서만 호출했었습니다. 이번에 개인적으로 사용할 서버 모니터링 프로그램을 만들면서 웹서비스를 사용하고 있었는데, 윈폼에서 호출이 1회 이상 되지 않는 문제가 발생하더군요.
처음 프로그램이 웹서비스를 호출하면 값을 잘 받아오지만, 이후부터는 값을 받아오지 못하는 문제더군요. 에러 메시지는 "기본 연결이 닫혔습니다" (영어로는 The Underlying Connection was Closed 더군요. 번역이 괜찮게 된건지 모르겠군요) 개발자의 친구, 구글신에게 물어보니 역시 좋은 해결 방안들이 있었습니다.
웹서비스 Proxy 를 생성하면 reference.cs 파일이 생기는데요, 일단 이 파일을 열어서 아래의 코드를 추가해 줍니다. 환경에 따라 다른 것인지 모르겠으나, keepalive 를 true 로 해서 해결이 된다는 이야기도 있었는데 제 경우에는 해당사항이 없었습니다.
해결 방법이 조금 꽁수이긴 하나 (ConnectionGroup 이름을 계속 새로운 GUID 로 할당해주는 -_-;;) 일단 해결이 되었고 크게 누군가에게 부담을 주는 방식이 아니라 일단 사용하기로 했습니다. 유경상님의 블로그에 이 에러와 관련하여 WCF와 Fiddler의 문제를 언급한 글도 한번 읽어 보시면 유사한 상황에서 도움이 되실 것 같습니다.
- NoPD -
처음 프로그램이 웹서비스를 호출하면 값을 잘 받아오지만, 이후부터는 값을 받아오지 못하는 문제더군요. 에러 메시지는 "기본 연결이 닫혔습니다" (영어로는 The Underlying Connection was Closed 더군요. 번역이 괜찮게 된건지 모르겠군요) 개발자의 친구, 구글신에게 물어보니 역시 좋은 해결 방안들이 있었습니다.
웹서비스 Proxy 를 생성하면 reference.cs 파일이 생기는데요, 일단 이 파일을 열어서 아래의 코드를 추가해 줍니다. 환경에 따라 다른 것인지 모르겠으나, keepalive 를 true 로 해서 해결이 된다는 이야기도 있었는데 제 경우에는 해당사항이 없었습니다.
해결 방법이 조금 꽁수이긴 하나 (ConnectionGroup 이름을 계속 새로운 GUID 로 할당해주는 -_-;;) 일단 해결이 되었고 크게 누군가에게 부담을 주는 방식이 아니라 일단 사용하기로 했습니다. 유경상님의 블로그에 이 에러와 관련하여 WCF와 Fiddler의 문제를 언급한 글도 한번 읽어 보시면 유사한 상황에서 도움이 되실 것 같습니다.
- NoPD -
728x90