ASP.NET Web Service: wsdl.exe 사용법 정리
예전 .NET Framework 기반 Web Service(ASMX)를 사용할 때는 wsdl.exe 유틸리티를 이용해 프록시 클래스(.cs)를 자동 생성하는 방식이 일반적이었습니다. WSDL 주소만 있으면 코드 생성이 가능하기 때문에 SOAP 기반 시스템과 연동할 때 많이 사용되던 방식입니다.
저도 한때 WSDL에서 cs 파일을 생성하려다 여러 번 시행착오를 겪었는데, 정확한 명령어를 알고 나니 금방 해결되더군요. 아래는 wsdl.exe의 기본 사용법을 정리한 내용입니다.
1. wsdl.exe란?
wsdl.exe는 .NET Framework SDK에 포함된 도구로, Web Service Description Language(WSDL) 파일을 기반으로 SOAP 클라이언트 프록시 클래스를 생성합니다.
경로(기본값): C:\Program Files\Microsoft SDKs\Windows\vX.X\Bin\wsdl.exe
※ 참고 - .NET Framework 전용 도구이며, - .NET 5+ / .NET Core 환경에서는 더 이상 사용되지 않습니다. - 현재는 svcutil 또는 dotnet-svcutil 도구를 사용합니다.

2. wsdl.exe 기본 명령어 예제
2-1. .asmx URL을 통한 프록시 생성
wsdl http://localhost/.../CreditVerify.asmx
/n:CreditVerifyProxy
/out:CreditVerifyProxy.cs
2-2. ?WSDL 문서 직접 지정
wsdl http://localhost/.../CreditVerify.asmx?WSDL
/n:CreditVerifyProxy
/out:CreditVerifyProxy.cs
2-3. 언어(language) 지정 (C# / VB)
wsdl /language:VB
http://localhost/.../CreditVerify.asmx?WSDL
/n:CreditVerifyProxy
/out:CreditVerifyProxy.vb
2-4. 프로토콜 지정 (HttpGet 등)
wsdl http://localhost/.../CreditVerify.asmx
/n:CreditVerifyProxy
/out:CreditVerifyProxy.cs
/protocol:HttpGet
프로토콜 옵션은 ASMX Web Service가 제공하는 HTTP GET/POST/SOAP 등 원하는 방식으로 프록시를 생성할 수 있도록 도와줍니다.
3. 생성된 프록시 클래스 사용
프록시 파일(.cs or .vb)을 프로젝트에 추가하면 다음과 같이 사용할 수 있습니다.
var client = new CreditVerifyProxy.CreditVerify();
var result = client.Verify("12345");
4. (중요) 2025년 기준: wsdl.exe는 레거시입니다
ASMX Web Service는 이미 오래전에 기술 지원이 종료되었고, 지금은 아래 기술로 대체되었습니다.
- .NET Framework → WCF +
svcutil.exe - .NET Core / .NET 5+ →
dotnet-svcutil - 현대적 API 설계 → REST + JSON 기반 Web API
즉, wsdl.exe는 레거시 시스템 유지보수에서만 사용됨을 명확히 이해하는 것이 좋습니다.
5. 정리
wsdl.exe는 SOAP Web Service(ASMX)의 프록시 클래스를 자동 생성하는 도구- .asmx URL 또는 ?WSDL URL을 입력하면 .cs/.vb 파일을 생성
- 2025년 기준으로는 더 이상 사용되지 않는 레거시 기술
- 새로운 시스템에서는 WCF/Svcutil 또는 REST API로 전환하는 것이 표준
기존 ASMX 기반 Web Service를 유지보수해야 하는 경우라면, 아직도 wsdl.exe는 유용합니다. 하지만 신규 개발에서는 ASP.NET Web API 또는 gRPC를 사용하는 것이 더 좋은 선택입니다.
'IT·디지털 > IT 개발자 팁' 카테고리의 다른 글
| [iOS] WebView 백그라운드 투명 처리 (UIWebView → WKWebView 최신 방식 포함) (0) | 2013.10.16 |
|---|---|
| [iOS] 화면 밝기를 강제로 최대값으로 변경 후 다시 복원하는 방법 (2025 최신 기준) (1) | 2013.10.11 |
| [iOS] 옛날 아이폰5 해상도 대응 방식, 지금은 어떻게 해야 할까? (2025년 최신 기준) (0) | 2013.01.08 |
| [iOS] UIAlertView didDismissWithButtonIndex 문제, 지금은 어떻게 해결할까? (UIAlertController 기준) (0) | 2012.12.04 |
| 스마트폰 디바이스별 해상도 정리 (2025년 기준) (4) | 2012.08.22 |