연습: Visual Basic 또는 Visual C#을 사용하여 웹 서비스 만들기
업데이트: 2007년 11월
다음 연습에서는 Visual Basic 또는 VIsual C#을 사용하여 화씨 온도를 섭씨 온도로 변환하는 웹 서비스를 만드는 과정에 대해 설명합니다.
이 연습을 진행하는 동안 다음과 같은 작업을 수행하게 됩니다.
ASP.NET 웹 서비스 프로젝트 템플릿을 사용하여 웹 서비스 만들기
웹 서비스 구현
디버그 모드에서 웹 서비스 실행
웹 서비스 배포
이 연습을 완벽하게 수행하려면 웹 프로젝트를 만들기 위한 요구 사항을 충족시키는 시스템에 액세스해야 합니다. 자세한 내용은 연습: Visual Web Developer에서 ASP.NET 웹 서비스 생성 및 사용을 참조하십시오.
웹 서비스 프로젝트 만들기
Visual Studio에서는 ASP.NET 웹 서비스 프로젝트 템플릿을 제공하므로 Visual Basic 및 Visual C#에서 웹 서비스를 만드는 데 도움이 됩니다.
ASP.NET 웹 서비스 프로젝트를 만들려면
파일 메뉴에서 새 웹 사이트를 선택합니다.
새 웹 사이트 대화 상자에서 ASP.NET 웹 서비스 아이콘을 선택합니다.
예를 들면, "http://MyServer/TempConvert1"과 같이 웹 서비스를 개발할 웹 서버의 주소를 입력하고 TempConvert1을 디렉터리 이름으로 지정합니다. 기본적으로 프로젝트에서는 사용자의 로컬 컴퓨터인 https://localhost를 사용합니다.
참고
일부 프로젝트 형식의 경우 위치를 지정하면 프로젝트 이름이 대신 설정되므로 이름 텍스트 상자를 사용할 수 없습니다. 예를 들어, 웹 응용 프로그램과 웹 서비스가 웹 서버에 있는 경우에는 이 서버에 지정된 가상 디렉터리에서 이름을 가져옵니다.
참고
웹 서비스는 개발 서버에서 개발되는데, 기본적으로 개발 서버는 사용자의 로컬 시스템에 있습니다. 일반적으로 개발 서버에서 프로젝트를 개발하고 빌드한 다음 배포 프로젝트를 사용하여 웹 서비스를 호스팅할 다른 서버(배포 서버)에 프로젝트를 배포합니다. 하지만 웹 서비스를 호스팅할 서버에서 직접 프로젝트를 개발하는 경우에는 개발 서버와 배포 서버가 동일합니다.
확인을 클릭하여 프로젝트를 만듭니다.
Visual Studio에서는 자동으로 필요한 파일을 만들고 필요한 참조를 포함하여 웹 서비스를 지원합니다. Visual Studio에서 웹 서비스 프로젝트를 만드는 경우 Service1.asmx를 위한 구성 요소 디자이너가 나타납니다.
웹 서비스 구현
다음 단계는 클라이언트가 액세스할 웹 서비스 기능을 구현하는 코드를 작성하는 것입니다. Visual Studio에서 만들어진 웹 서비스의 경우, 이러한 코드는 Visual Studio에서 사용자를 대신해 만든 해당 웹 서비스의 .asmx 파일과 관련된 숨겨진 코드 숨김 파일에 들어 있습니다. 자세한 내용은 방법: 웹 서비스 메서드 만들기를 참조하십시오.
웹 서비스 메서드를 추가하려면
Service.vb 코드 파일에서 Service 클래스 선언을 위한 코드를 찾습니다. 클래스 선언 앞에서 System.Web.Services.WebService 특성 코드를 다음 코드(굵게 표시)로 바꿉니다.
<System.Web.Services.WebService( _ Namespace:="http://Walkthrough/XmlWebServices/", _ Description:="A temperature conversion service.")> _ Public Class Service
[System.Web.Services.WebService( Namespace="http://Walkthrough/XmlWebServices/", Description="A temperature conversion service.")] public class Service : System.Web.Services.WebService
WebService 특성을 Public 클래스에 연결하면 웹 서비스에 대한 추가 정보, 즉 웹 서비스의 네임스페이스와 웹 서비스에 대한 설명 등을 포함시킬 수 있습니다. 이 특성에 대한 설명 속성은 서비스 도움말 페이지에 포함되어 있습니다. 자세한 내용은 방법: WebService 특성 사용을 참조하십시오.
Service 클래스에서 다음 코드를 추가하여 ConvertTemperature 함수를 선언합니다.
<WebMethod(Description:="This method converts a temperature in " & _ "degrees Fahrenheit to a temperature in degrees Celsius.")> _ Public Function ConvertTemperature(ByVal dFahrenheit As Double) _ As Double Return ((dFahrenheit - 32) * 5) / 9 End Function
[WebMethod(Description="This method converts a temperature in " + "degrees Fahrenheit to a temperature in degrees Celsius.")] public double ConvertTemperature(double dFahrenheit) { return ((dFahrenheit - 32) * 5) / 9; }
WebMethod 특성을 Public 메서드에 연결하면 이 메서드가 웹 서비스의 일부로 노출됩니다. 이 특성에 대한 설명 속성은 서비스 도움말 페이지와 서비스 메서드 도움말 페이지에 포함되어 있습니다. 자세한 내용은 방법: WebMethod 특성 사용을 참조하십시오.
솔루션 탐색기에서 Service.asmx를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 시작 페이지로 설정을 클릭합니다.
솔루션을 저장합니다.
웹 서비스 디버깅
Visual Studio에서는 IDE에서 웹 서비스를 빌드하고 실행하기 위한 다음과 같은 몇 가지 방법을 제공합니다.
디버깅으로 시작
디버깅하지 않고 시작
브라우저에서 보기
Visual Studio 프로젝트인 이 웹 서비스에는 릴리스 및 디버그 버전에 대한 별도의 구성이 존재합니다. 이 프로젝트는 ASP.NET 웹 서비스 프로젝트 템플릿을 사용하여 만들어졌기 때문에, Visual Studio는 자동으로 이 구성을 만들고 해당하는 기본 옵션과 기타 설정을 설정합니다. 자세한 내용은 방법: 디버그 및 릴리스 구성 설정을 참조하십시오.
이 연습에서는 웹 서비스에 중단점을 배치하고 디버깅으로 시작을 사용합니다. 자세한 내용은 방법: 관리 코드의 웹 서비스 디버깅을 참조하십시오.
디버깅을 시작하기 전에 디버그 설정을 확인합니다. 자세한 내용은 디버깅 준비: XML Web services 프로젝트를 참조하십시오.
중단점을 사용하고 디버깅으로 웹 서비스를 시작하려면
디버그 메뉴에서 새 중단점을 선택한 다음 함수에서 중단을 클릭합니다.
함수 탭의 함수 입력란에 ConvertTemperature를 입력하고 확인을 클릭하여 ConvertTemperature 메서드 선언에 중단점을 추가합니다.
디버그 메뉴에서 시작을 클릭한 다음 디버깅 사용 안 함 창에서 확인을 클릭하여 디버깅을 시작합니다.
이 명령을 선택하면 웹 서비스가 디버거에서 실행됩니다. Visual Studio는 프로젝트를 빌드한 다음 지정된 개발 서버로 이 프로젝트를 배포합니다. 배포가 완료되면 기본 브라우저에 배포 서버의 .asmx 파일이 표시됩니다.
브라우저에서 .asmx 파일을 열면 웹 서비스에서 웹 서비스에 관한 정보를 제공하는 서비스 도움말 페이지를 반환합니다. 서비스 설명 링크를 누르면 웹 서비스의 공식 서비스 설명이 들어 있는 XML 문서로 연결됩니다. 자세한 내용은 XML Web services 설명을 참조하십시오.
서비스 도움말 페이지에서 ConvertTemperature 링크를 클릭합니다.
dFahrenheit 상자에 숫자 212를 입력하고 Invoke 단추를 클릭합니다.
처리 동작이 ConvertTemperature 함수에 도달하면 실행이 중단됩니다. Visual Studio 디버거에서 중단점이 포함된 줄이 강조 표시됩니다. 동작이 중단되는 동안 다양한 작업을 수행할 수 있습니다. 자세한 내용은 디버거 로드맵 및 디버거에서 데이터 보기를 참조하십시오.
디버그 메뉴에서 계속을 클릭하여 처리를 계속 실행합니다.
웹 서비스는 변환 값을 다음과 같은 XML 문서에서 반환합니다.
<?xml version="1.0" encoding="utf-8" ?> <double xmlns="http://Walkthrough/XmlWebServices/">100</double>
웹 서비스 실행을 중지하고 코드 편집기로 돌아가려면 디버그 메뉴에서 디버깅 중지를 클릭합니다.
디버그 메뉴에서 모든 중단점 삭제를 클릭합니다.
웹 서비스 배포
다른 사람이 웹 서비스를 사용할 수 있게 하려면 지원할 클라이언트가 액세스할 수 있는 웹 서버로 해당 웹 서비스를 배포해야 합니다. 웹 서비스를 개발 서버가 아닌 다른 서버로 배포하려는 경우에, 웹 설치 프로젝트를 추가하거나 필요한 파일을 대상 서버에 복사할 수 있습니다. 이 연습에서는 이 웹 서비스를 배포하는 방법을 선택할 수 있습니다. 자세한 내용은 방법: 관리 코드의 웹 서비스 배포를 참조하십시오.
웹 설치 프로젝트를 사용하여 웹 서비스를 배포하려면
파일 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.
기타 노드, 설치 및 배포 프로젝트 노드를 차례로 선택한 다음 웹 설치 프로젝트를 클릭합니다.
이름 상자에 TempConvert1WebSetup을 입력하고 확인을 클릭합니다.
참고
사용자 배포 서버에서 가상 디렉터리를 만드는 경우 기본적으로 배포 프로젝트 이름이 사용됩니다.
파일 시스템 편집기의 왼쪽 창에서 웹 응용 프로그램 폴더를 선택합니다. 자세한 내용은 파일 시스템 편집기를 참조하십시오.
솔루션 탐색기에서 TempConvert1WebSetup을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 프로젝트 출력을 클릭합니다.
프로젝트 출력 그룹 추가 대화 상자에서 콘텐츠 파일을 선택합니다. 자세한 내용은 방법: 파일 시스템 편집기에서 프로젝트 출력 추가 및 제거를 참조하십시오.
- 콘텐츠 파일 그룹은 웹 서비스의 Service1.asmx, Global.asax 및 Web.config 파일로 구성되어 있습니다. 자세한 내용은 방법: 관리 코드의 웹 서비스 배포를 참조하십시오.
확인을 클릭합니다.
솔루션 탐색기에서 TempConvert1WebSetup 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 빌드를 클릭합니다.
이렇게 하면 로컬 프로젝트 디렉터리에서 Windows Installer 파일이 만들어지고 이 파일을 실행하면 웹 응용 프로그램이 설치됩니다.
프로젝트를 복사하여 웹 서비스를 배포하려면
솔루션 탐색기에서 TempConvert1 프로젝트를 선택합니다.
프로젝트 메뉴에서 웹 사이트 복사를 클릭합니다.
연결 대상 드롭다운 상자 옆에 있는 아이콘을 클릭하여 웹 사이트 열기 대화 상자를 엽니다. 프로젝트를 복사하려는 위치를 찾습니다.
소스 웹 사이트 창에서 복사할 파일을 선택하고 오른쪽 화살표 아이콘을 클릭하여 해당 파일을 원격 웹 사이트 창으로 이동합니다. .
웹 사이트 복사를 클릭하여 웹 사이트를 복사합니다.
마지막으로, 이 웹 서비스에 액세스하는 클라이언트 응용 프로그램을 만들려면 다음 연습 중 하나를 참조하십시오.