Version 1.1
문서 이력
2013-04-05 최초 작성 Ver 1.0
2013-05-24 wsdl.exe 설명 중 스키마 include / import 부분 수정 Ver 1.1
웹서비스 클래스 생성하여 자동 WSDL 문서 생성이 아닌 WSDL 문서를 작성한 후 웹서비스 제공클래스를 만드는 방법입니다. 이 방법은 찾아보니 잘 나와있지는 않더군요.
우선, 작성된 WSDL 문서를 준비합니다.
그리고 C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin 폴더로 가서 wsdl.exe 가 있는지확인합니다. (저는 Visual Studio 2008 이 설치되어 있어 v6.0A 가 있으나 이는 버전에 따라 틀릴 수 있습니다.)
있다면, 편의를 위해 wsdl.exe 가 있는 경로를 “환경변수 – path” 에 추가해 줍니다.
명령 프롬프트 창(cmd) 를 띄우고 wsdl.exe 를 실행해서 아래와 같이 나오는지 확인합니다.
이제 명령 프롬프트 창에서 준비한 WSDL 문서가 있는 경로로 이동합니다.
예)C:\wsdl\test.wsdl
아래와 같이 wsdl.exe 를 실행합니다.
/* WSDL 문서만 있고 C# 클래스로 만들 경우 (기본은 C# 입니다.) */ wsdl.exe /serverInterface test.wsdl
/* VB 클래스로 만들 경우 (/serverInterface 옵션은 /si 로 축약해서 사용 가능) */ wsdl.exe /si /l:VB test.wsdl
/* WSDL 문서 Types 에 스키마가 import 되어 있을 경우 */ wsdl.exe /si test.wsdl info.xsd infoReply.xsd
|
그러면 아래와 같이 “’C:\wsdl\ServiceInterfaces.cs’ 파일을 쓰는 중입니다.” 라는 메시지가 나오며 종료됩니다.
이제 c:\wsdl 에 ServiceInterfaces.cs 파일이 생성되어 있습니다.
이 파일은 Interface 이며 웹서비스 제공 클래스를 하나 만들어서 구현을 해서 쓰면됩니다.
이 파일을 웹 프로젝트에서 App_Code 에다 끌어다 넣습니다.
프로젝트에 웹서비스를 하나 추가하고 웹서비스 클래스는 ServiceInterfaces 인터페이스를 구현합니다.
아래 코드의 빨간 부분이 추가되어야 하는 부분입니다.
using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq;
/// <summary> /// WebService의 요약 설명입니다. /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다. // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService, IServiceSoap {
public WebService () {
//디자인된 구성 요소를 사용하는 경우 다음 줄의 주석 처리를 제거합니다. //InitializeComponent(); }
[WebMethod] public string HelloWorld() { return "Hello World"; }
[WebMethod] public string test_Retrieve(string input) { return "This is test"; }
}
|
WebService.asmx 를 브라우저 보기해 보면 아래와 같이 정상적으로 웹서비스가 제공되고 있음을 확인할 수 있습니다.
'데스크탑 > .NET' 카테고리의 다른 글
Data Access Layer 로 Enterprise Library 5.0 의 Data Access Application Block(DAAB) 사용하기 (0) | 2013.05.18 |
---|---|
웹서비스 SOAPFault 에서 Faultstring 에 디버깅 정보 없애기 (0) | 2013.04.30 |
Visual Studio 2008 / 2010 에 WSE 3.0 설치하기 (0) | 2013.04.30 |
Windows 7 에서 ODP.NET 설치하기 (0) | 2013.04.30 |
[C#] 날짜형식 검사하기 (2) | 2013.04.30 |