연습: Visual Basic 또는 Visual C#을 사용하여 웹 서비스 액세스
업데이트: 2007년 11월
다음 연습에서는 Visual Studio 또는 C#을 사용하여 만들어진 응용 프로그램에서 웹 서비스에 액세스하는 과정에 대해 설명합니다.
이 연습을 진행하는 동안 다음과 같은 작업을 수행하게 됩니다.
ASP.NET 웹 응용 프로그램 프로젝트 템플릿을 사용하여 클라이언트 응용 프로그램 만들기
웹 서비스에 대한 웹 참조 추가
웹 서비스 액세스 코드 작성
디버그 모드에서 클라이언트 응용 프로그램 실행
웹 응용 프로그램 배포
이 연습을 완벽하게 수행하려면 다음 조건을 충족시켜야 합니다.
이 연습에서는 웹 응용 프로그램을 사용하여 웹 서비스에 액세스하므로, 웹 프로젝트를 만드는 데 필요한 요구 사항을 충족시키는 시스템을 사용해야 합니다. 또한 웹 서버가 있는 컴퓨터에 웹 서비스 프로젝트를 만들 수 있는 권한이 있어야 합니다.
다음 연습에서 만들어진 웹 서비스는 다음과 같습니다.
웹 서비스 클라이언트 프로젝트 만들기
이 연습에서는 연습: Visual Basic 또는 Visual C#을 사용하여 웹 서비스 만들기에서 만든 웹 서비스에 지정된 이름인 TempConvert1 웹 서비스에 액세스하는 간단한 웹 응용 프로그램을 만듭니다.
참고
온도 변환 웹 서비스를 만들 때 이름을 변경한 경우 이 연습에서 TempConvert1 이름 대신 적절한 이름으로 간단히 대체하면 됩니다.
ASP.NET 웹 응용 프로그램을 만들려면
파일 메뉴에서 새 웹 사이트를 선택합니다.
새 웹 사이트 대화 상자에서 ASP.NET 웹 사이트 아이콘을 선택합니다.
예를 들면, "http://MyServer/TempConvertClient1"과 같이 웹 응용 프로그램을 개발할 웹 서버의 주소를 입력하고 TempConvertClient1을 디렉터리 이름으로 지정합니다. 기본적으로 프로젝트에서는 사용자의 로컬 시스템인 "https://localhost"를 사용합니다.
참고
일부 프로젝트 형식의 경우, 위치를 지정하면 프로젝트 이름이 대신 설정되므로 이름 텍스트 상자를 사용할 수 없습니다. 예를 들어, 웹 응용 프로그램과 웹 서비스가 웹 서버에 있는 경우에는 이 서버에 지정된 가상 디렉터리에서 이름을 가져옵니다.
참고
웹 응용 프로그램은 개발 서버에서 개발됩니다. 기본적으로 개발 서버는 사용자의 로컬 시스템에 있습니다. 대개 개발 서버에서 프로젝트를 개발하고 빌드한 후, 이를 배포 프로젝트를 사용하여 웹 응용 프로그램을 호스팅하는 다른 서버(배포 서버)에 배포합니다. 하지만 웹 응용 프로그램을 호스팅하는 서버에서 직접 프로젝트를 개발하는 경우에는 개발 서버와 배포 서버가 동일합니다.
확인을 클릭하여 프로젝트를 만듭니다.
솔루션 탐색기에서 Default.aspx를 마우스 오른쪽 단추로 클릭하고 디자이너 보기를 선택하여 디자이너를 엽니다.
도구 상자의 Web Forms 탭에서 Text Box, Label 및 Button을 Default.aspx 디자인 화면으로 끌어 놓은 다음 보기 좋게 정렬합니다.
추가된 Button1 단추를 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 속성을 클릭합니다. 속성 창에서 Text 속성을 Convert로 설정합니다.
추가된 Label1 레이블을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 속성을 클릭합니다. 속성 창에서 Text 속성을 지워 빈 레이블을 만듭니다.
웹 참조 추가
웹 서비스 검색은 클라이언트가 웹 서비스를 찾고 이와 관련된 서비스 설명을 가져오는 데 사용되는 프로세스입니다. Visual Studio의 웹 서비스 검색 프로세스에는 미리 지정된 알고리즘에 따라 웹 사이트를 조회하는 동작이 포함되어 있습니다. 이 프로세스의 목적은 WSDL(Web Services Description Language)을 사용하는 XML 문서인 서비스 설명을 찾는 것입니다. 자세한 내용은 XML Web services 검색을 참조하십시오.
서비스 설명에는 사용 가능한 서비스 및 이 서비스와 상호 작용하는 방법이 설명되어 있습니다. 서비스 설명이 없으면 웹 서비스와 프로그래밍 방식으로 상호 작용하는 것이 불가능합니다. 자세한 내용은 XML Web services 설명을 참조하십시오.
응용 프로그램에는 웹 서비스와 통신하고 런타임에 웹 서비스를 찾을 수 있는 수단이 있어야 합니다. 웹 서비스에 대한 웹 참조를 프로젝트에 추가하게 되면 프록시 클래스가 만들어지고, 이 클래스가 웹 서비스와 인터페이스하여 웹 서비스를 로컬로 표시해 줍니다. 자세한 내용은 Visual Studio의 웹 참조 및 방법: 웹 서비스 프록시 생성을 참조하십시오.
웹 참조를 추가하려면
웹 사이트 메뉴에서 웹 참조 추가를 선택합니다.
액세스할 웹 서비스의 서비스 설명을 가져올 URL(예: https://localhost/TempConvert1/Service1.asmx)을 웹 참조 추가 대화 상자의 URL 상자에 입력합니다. 그런 다음 이동 단추를 클릭하여 웹 서비스에 대한 정보를 검색합니다.
- 또는 -
웹 서비스가 로컬 컴퓨터에 있는 경우 브라우저 창에서 로컬 컴퓨터의 웹 서비스 링크를 클릭합니다. 그런 다음 제공된 목록에서 TempConvert1 웹 서비스의 링크를 클릭하여 웹 서비스에 대한 정보를 검색합니다.
웹 참조 이름 상자에서 웹 참조 이름을 해당 웹 참조에 사용할 네임스페이스인 ConvertSvc로 바꿉니다.
참조 추가를 클릭하여 대상 웹 서비스에 대한 웹 참조를 추가합니다. 자세한 내용은 방법: 웹 참조 추가 및 제거를 참조하십시오.
Visual Studio는 서비스 설명을 다운로드하고 응용 프로그램과 웹 서비스 사이를 인터페이스하는 프록시 클래스를 생성합니다.
웹 서비스 액세스
웹 서비스 참조를 프로젝트에 추가한 후 다음 단계는 웹 서비스 프록시 클래스의 인스턴스를 만드는 것입니다. 그런 다음에는 다른 개체의 메서드에 액세스하는 것과 같은 방식으로 프록시 클래스의 메서드를 호출하여 웹 서비스의 메서드에 액세스할 수 있습니다. 응용 프로그램에서 이 메서드를 호출하면 Visual Studio에 의해 만들어진 프록시 클래스 코드가 응용 프로그램과 웹 서비스 사이의 통신을 처리합니다.
우선, 웹 서비스 프록시 클래스의 인스턴스를 만듭니다. 그 다음에는 TextBox1에 제공된 값을 사용하여 웹 서비스의 ConvertTemperature 메서드를 호출합니다. 그런 다음, 웹 서비스에서 반환되는 값을 Label1에 표시합니다.
웹 서비스에 액세스하려면
WebForm1.aspx에서 Convert 단추를 두 번 클릭하여 이 단추의 이벤트 처리 메서드를 만들고 코드 숨김 파일을 표시합니다.
다음과 같은 코드를 입력합니다.
' Visual Basic Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e as EventArgs) Handles Button1.Click Dim ws As New ConvertSvc.Service Dim dFahrenheit As Double Dim dCelsius As Double Try dFahrenheit = Convert.ToDouble(TextBox1.Text) dCelsius = ws.ConvertTemperature(dFahrenheit) Label1.Text = dCelsius.ToString() Catch Label1.Text = "Conversion failed." End Try End Sub // C# protected void Button1_Click (System.Object sender, System.EventArgs e) { try { ConvertSvc.Service1 ws = new ConvertSvc.Service1(); double dFahrenheit = Convert.ToDouble(TextBox1.Text); double dCelsius = ws.ConvertTemperature(dFahrenheit); Label1.Text = dCelsius.ToString(); } catch { Label1.Text = "Conversion failed."; } }
참고
웹 참조를 추가할 때 생성되는 웹 서비스 클래스의 이름은 위에 나타난 Service1과 다를 수 있습니다.
솔루션 탐색기에서 Default.aspx를 선택합니다.
웹 사이트 메뉴에서 시작 페이지로 설정을 클릭합니다.
솔루션을 저장합니다.
자세한 내용은 방법: 관리 코드의 웹 서비스 액세스를 참조하십시오.
웹 서비스 클라이언트 디버깅
Visual Studio는 IDE에서 웹 응용 프로그램을 빌드하고 실행하기 위한 다음과 같은 몇 가지 방법을 제공합니다.
디버깅으로 시작
디버깅하지 않고 시작
브라우저에서 보기
Visual Studio 프로젝트인 이 웹 응용 프로그램에는 릴리스 및 디버그 버전에 대한 별도의 구성이 존재합니다. 이 프로젝트는 ASP.NET 웹 응용 프로그램 프로젝트 템플릿을 사용하여 만들어졌기 때문에, Visual Studio에서는 자동으로 이 구성을 만들고 해당하는 기본 옵션과 기타 설정을 설정합니다. 자세한 내용은 방법: 디버그 및 릴리스 구성 설정을 참조하십시오.
이 연습에서는 Button1_Click 이벤트에 중단점을 배치하고 디버깅으로 시작을 사용합니다. 자세한 내용은 방법: 관리 코드의 웹 서비스 디버깅을 참조하십시오.
디버깅을 시작하기 전에 디버그 설정을 확인합니다. 자세한 내용은 디버깅 준비: ASP.NET 웹 응용 프로그램을 참조하십시오.
중단점을 사용하고 디버깅으로 웹 응용 프로그램을 시작하려면
디버그 메뉴에서 새 중단점을 클릭하고 함수에서 중단을 선택합니다.
함수 상자에 Button1_Click을 입력하고 확인을 클릭하여 Button1_Click 이벤트 처리기에 중단점을 배치합니다. 자세한 내용은 중단점 개요를 참조하십시오.
디버그 메뉴에서 시작을 클릭한 다음 디버깅 사용 안 함 창에서 확인을 클릭하여 디버깅을 시작합니다.
이 명령은 Visual Studio에 디버거에서 웹 응용 프로그램을 실행하도록 지시합니다. Visual Studio는 프로젝트를 빌드한 다음 지정된 개발 서버로 이 프로젝트를 배포합니다. 배포가 완료되면 기본 브라우저가 시작되어 배포 서버에서 .aspx 파일을 찾습니다.
이 페이지가 브라우저에 표시되면 텍스트 상자에 숫자 212를 입력하고 Convert 단추를 클릭합니다.
처리 동작이 Button1_Click 이벤트 처리기에 도달하면 실행이 중단됩니다. Visual Studio 디버거에서 중단점이 포함된 줄이 강조 표시됩니다. 동작이 중단되는 동안 다양한 작업을 수행할 수 있습니다. 자세한 내용은 디버거 로드맵 및 디버거에서 데이터 보기을 참조하십시오.
디버그 메뉴에서 계속을 클릭하여 처리를 계속 실행합니다.
웹 서비스는 변환 값을 반환하고 응용 프로그램은 Label1의 텍스트를 100으로 설정합니다.
웹 응용 프로그램 실행을 중지하고 코드 편집기로 돌아가려면 디버그 메뉴에서 디버깅 중지를 클릭합니다.
디버그 메뉴에서 모든 중단점 지우기를 클릭합니다.
클라이언트 배포
다른 사람이 웹 응용 프로그램을 사용할 수 있게 하려면 지원할 클라이언트가 액세스할 수 있는 웹 서버로 해당 웹 응용 프로그램을 배포해야 합니다. 웹 응용 프로그램을 개발 서버가 아닌 다른 서버로 배포하려는 경우에, 웹 설치 프로젝트를 추가하거나 필요한 파일을 대상 서버에 복사할 수 있습니다. 이 연습에서는 이 웹 응용 프로그램을 배포하는 방법을 선택할 수 있습니다. 자세한 내용은 응용 프로그램 및 구성 요소 배포를 참조하십시오.
웹 설치 프로젝트를 사용하여 웹 응용 프로그램을 배포하려면
파일 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.
기타 노드, 설치 및 배포 프로젝트 노드를 차례로 선택한 다음 웹 설치 프로젝트를 클릭합니다.
이름 상자에 TempConvertClient1WebSetup을 입력한 다음 확인을 클릭합니다.
참고
사용자 배포 서버에서 가상 디렉터리를 만드는 경우 기본적으로 배포 프로젝트 이름이 사용됩니다.
파일 시스템 편집기의 왼쪽 창에서 웹 응용 프로그램 폴더를 선택합니다. 자세한 내용은 파일 시스템 편집기를 참조하십시오.
솔루션 탐색기에서 TempConvertClient1WebSetup을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 프로젝트 출력을 클릭합니다.
프로젝트 출력 그룹 추가 대화 상자에서 콘텐츠 파일을 선택합니다. 자세한 내용은 방법: 파일 시스템 편집기에서 프로젝트 출력 추가 및 제거를 참조하십시오.
- 콘텐츠 파일 그룹은 웹 응용 프로그램의 나머지 파일들로 구성됩니다. 이 파일에는 WebForm1.aspx 및 Web.config 등이 있습니다.
확인을 클릭합니다.
솔루션 탐색기에서 TempConvertClient1WebSetup 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 빌드를 클릭합니다.
이렇게 하면 로컬 프로젝트 디렉터리에서 Windows Installer 파일이 만들어지고 이 파일을 실행하면 웹 응용 프로그램이 설치됩니다.
프로젝트를 복사하여 웹 응용 프로그램을 배포하려면
솔루션 탐색기에서 TempConvertClient1 프로젝트를 선택합니다.
프로젝트 메뉴에서 웹 사이트 복사를 클릭합니다.
연결 대상 드롭다운 상자 옆에 있는 아이콘을 클릭하여 웹 사이트 열기 대화 상자를 엽니다. 프로젝트를 복사하려는 위치를 찾습니다.
소스 웹 사이트 창에서 복사할 파일을 선택하고 오른쪽 화살표 아이콘을 클릭하여 해당 파일을 원격 웹 사이트 창으로 이동합니다.
웹 사이트 복사를 클릭하여 웹 사이트를 복사합니다.