Share via


Visual Studio 2005 클라이언트를 사용하여 SOAP 요청 보내기(Visual Basic)

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

이 항목의 예는 Visual Studio 2005 클라이언트(C#)를 사용하여 SOAP 요청 보내기에 있는 예와 비슷합니다. 이 항목의 예는 Visual Basic으로 작성되었다는 점만 다릅니다. 따라서 이 항목에서는 이 예를 만드는 데 필요한 코드와 단계만 제공합니다.

작업 예제 만들기

이 예제를 만드는 데 필요한 단계가 많으므로 응용 프로그램을 다음 네 단계로 분류했습니다.

  • 1단계: 저장 프로시저 실행

  • 2단계: 매개 변수를 사용하지 않고 SQL 쿼리 실행

  • 3단계: 매개 변수를 사용하여 SQL 쿼리 실행

  • 4단계: 사용자 정의 함수 실행

각 단계에서는 일련의 지침을 제공합니다. 각 단계가 끝나면 응용 프로그램을 테스트할 수 있습니다.

필요한 프록시 클래스를 만들려면

  1. 이 응용 프로그램에 사용할 폴더를 만듭니다.

  2. 클라이언트 컴퓨터의 Microsoft Visual Studio 2005 프로그램 그룹에서 Microsoft Visual Studio 2005를 시작합니다.

  3. 새 프로젝트를 클릭합니다.

  4. 프로젝트 형식으로 Visual Basic 프로젝트를 선택합니다.

  5. 이름 입력란에 NativeSOAPApp2를 지정합니다.

  6. 위치 입력란에 프로젝트를 저장할 폴더 경로를 지정합니다.

  7. 템플릿으로 Windows 응용 프로그램을 선택하고 확인을 클릭합니다.

  8. 솔루션 탐색기 창에서 참조를 마우스 오른쪽 단추로 클릭한 다음 웹 참조 추가를 선택합니다. 웹 참조는 프로젝트 메뉴에서 웹 참조 추가를 선택하여 추가할 수도 있습니다.

  9. 주소 상자에 https://Server/sql?wsdl을 입력합니다. 여기에서 Server는 서버 이름입니다. 그런 다음 Enter 키를 누릅니다. WSDL이 생성되면 끝점에 대한 설명이 표시됩니다. 이때 AddReference를 클릭합니다. WSDL 문서의 메서드를 호출할 수 있도록 필요한 프록시 클래스가 만들어집니다.

1단계: 저장 프로시저 실행

이 단계에서는 응용 프로그램이 GetCustomerInfo 웹 메서드를 요청합니다.

  1. Form1에 입력란(textBox1), 단추(button1) 및 목록 상자(listBox1)를 추가합니다.

  2. 입력란을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. Text 값을 textBox1에서 1로 변경합니다. 이 값은 기본 고객 ID 값입니다.

  3. button1을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

    1. Text 속성 값을 button1에서 ExecSP로 변경합니다.

    2. (name) 속성 값을 ExecSP로 변경합니다.

  4. 목록 상자(listBox1)를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다. HorizontalScrollbar 속성 값을 True로 변경합니다.

  5. ExecSP를 두 번 클릭합니다.

  6. _ExecSP에 대한 Visual Basic 코드 목록의 코드를 이 함수로 복사합니다.

  7. 코드를 업데이트합니다. CREATE ENDPOINT를 사용하여 끝점을 만들 때 식별된 호스트 이름에 의한 server 참조를 변경합니다.

  8. 프로젝트를 저장하고 컴파일합니다. 자세한 내용은 이전 섹션의 "코드 컴파일"을 참조하십시오.

2단계: 매개 변수를 사용하지 않고 SQL 쿼리 실행

이 단계에서는 클라이언트 응용 프로그램이 AdventureWorks2008R2 데이터베이스의 Employee 테이블에서 3명의 직원을 검색하는 임시 쿼리(FOR XML 쿼리)를 실행합니다.

  1. Form1의 [디자인] 탭에서 다른 단추(button1)를 추가합니다.

  2. 이 새 단추를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

    1. Text 속성 값을 button1에서 ExecBatchFindAllEmps로 변경합니다.

    2. (name) 속성 값을 ExecBatchFindAllEmps로 변경합니다.

  3. ExecBatchFindAllEmp를 두 번 클릭합니다.

  4. FindAllEmps에 대한 Visual Basic 코드 목록의 코드를 이 함수로 복사합니다.

  5. 코드를 업데이트합니다. CREATE ENDPOINT를 사용하여 끝점을 만들 때 식별된 호스트 이름에 의한 server 참조를 변경합니다.

  6. 프로젝트를 저장하고 컴파일합니다. 자세한 내용은 이전 섹션의 "코드 컴파일"을 참조하십시오.

3단계: 매개 변수를 사용하여 SQL 쿼리 실행

이 단계는 임시 쿼리에 대한 SOAP 요청에 쿼리 매개 변수가 포함된다는 점만 제외하면 이전 단계와 유사합니다. FOR XML 쿼리는 지정한 직원 ID에 대한 직원 정보를 검색합니다.

  1. Form1의 [디자인] 탭에서 단추(button1)를 추가합니다.

  2. 이 새 단추를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

    1. Text 속성 값을 button1에서 ExecBatchFindAnEmp로 변경합니다.

    2. (name) 속성 값을 ExecBatchFindAnEmp로 변경합니다.

  3. ExecBatchFindAnEmp를 두 번 클릭합니다.

  4. _FindAnEmp에 대한 Visual Basic 코드 목록의 코드를 이 함수로 복사합니다.

  5. 코드를 업데이트합니다. CREATE ENDPOINT를 사용하여 끝점을 만들 때 식별된 호스트 이름에 의한 server 참조를 변경합니다.

  6. 프로젝트를 저장하고 컴파일합니다. 자세한 내용은 이전 섹션의 "코드 컴파일"을 참조하십시오.

4단계: 사용자 정의 함수 실행

이 단계에서는 클라이언트 응용 프로그램이 UDFReturningScalar 웹 메서드에 대한 SOAP 요청을 보냅니다. 이 웹 메서드는 정수 값을 반환하는 사용자 정의 함수에 해당합니다.

  1. Form1의 [디자인] 탭에서 다른 단추(button1)를 추가합니다.

  2. 이 새 단추를 마우스 오른쪽 단추로 클릭한 다음 속성을 선택합니다.

    1. Text 속성 값을 button1에서 ExecUDFReturningScalar로 변경합니다.

    2. (name) 속성 값을 ExecUDFReturningScalar로 변경합니다.

  3. ExecUDFReturningScalar를 두 번 클릭합니다.

  4. _ExecUDF에 대한 Visual Basic 코드 목록의 코드를 이 함수로 복사합니다.

  5. 코드를 업데이트합니다. CREATE ENDPOINT를 사용하여 끝점을 만들 때 식별된 호스트 이름에 의한 서버 참조를 변경합니다.

  6. 프로젝트를 저장하고 컴파일합니다. 자세한 내용은 이전 섹션의 "코드 컴파일"을 참조하십시오.

끝점에서는 통합 인증을 지정하므로 코드에 proxy.Credentials = System.Net.CredentialCache.DefaultCredentials 줄이 나타납니다.

SQL Server 인증을 사용할 경우에는 이 줄을 제거하고 제공된 SQL Server 기반 인증 자격 증명에 대해 WS-Security 헤더를 구현하는 코드를 추가하는 것이 좋습니다. 자세한 내용은 SOAP를 통한 SQL Server 인증을 참조하십시오.

[!참고]

SQL Server에서 SQL Server 인증 또는 기본 인증을 사용하는 경우 사용자 자격 증명이 일반 텍스트로 표시되지 않고 안전하게 암호화되어 전송되도록 SSL(Secure Sockets Layer)을 사용해야 합니다. HTTP 끝점에서 SSL을 설정하는 방법은 SSL에 사용되는 인증서 구성을 참조하십시오.

코드 컴파일

SQL Server에서는 설치 시 .NET Framework 2.0을 설치합니다. 컴파일 명령은 최신 .NET Framework를 사용합니다. 최신 명령은 \WINDOWS\Microsoft.NET\Framework 폴더에서 번호가 가장 높습니다.

코드를 컴파일하려면

  • 전체 프로젝트를 저장합니다.
  1. 명령 프롬프트를 열고 프로젝트가 저장된 폴더를 찾습니다.

  2. 이 폴더의 Web Reference\Server 하위 폴더에 있는 Reference.vb 파일을 복사합니다(예: "Web Reference\Server\Reference.vb" 복사). Form1.vb와 Reference.vb 파일은 같은 폴더에 있어야 합니다.

  3. 코드를 컴파일하고 실행 파일(.exe)의 이름을 지정합니다. 예를 들어 실행 파일의 이름이 NativeSOAPApp2.exe이면 명령줄에서 다음과 같이 지정합니다.

    \WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\vbc.exe /out:NativeSOAPApp2.exe /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:Microsoft.VisualBasic.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll /m:Form1 Form1.vb Reference.vb

    xxxxx는 .NET Framework의 버전에 해당하는 폴더 번호입니다.

    현재 디렉터리에 실행 파일(NativeSOAPApp2.exe)이 만들어집니다.

    [!참고]

    이전 버전의 .NET Framework를 사용할 경우에는 런타임 오류가 발생할 수 있습니다. 이 경우 다음과 같이 SELECT 문의 끝에 FOR XML AUTO 절을 추가하여 GetCustomerInfo 저장 프로시저를 업데이트하십시오.

    SELECT TOP 3 SalesOrderID, OrderDate 
    FROM   SalesOrderHeader
    WHERE  CustomerID = @CustomerID
    FOR XML AUTO
    

저장 프로시저 실행 결과가 목록 상자에 표시됩니다.