Share via


클라이언트 응용 프로그램에 SOAP 헤더 추가

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

SQL Server에서는 네이티브 XML 웹 서비스를 사용할 경우 SOAP 확장 헤더를 지원합니다. 이러한 헤더는 SQL 옵션과 SOAP 세션, WS-Security(Web Services Security) 등의 지원되는 SOAP 확장 헤더를 사용하여 SOAP 기반 응용 프로그램을 확장하고 성능을 향상시키는 데 사용할 수 있습니다. 자세한 내용은 SOAP 확장 헤더을 참조하십시오.

이 항목에서는 SQL Server에서 지원하는 각 SOAP 확장 헤더 옵션을 구현하는 예제 클래스 라이브러리를 설명합니다. 기존 Visual Studio 2005 SOAP 클라이언트 프로젝트에 대해 이 라이브러리를 추가할 수 있습니다. 네이티브 XML 웹 서비스 요청 보내기 예제 응용 프로그램에 제공된 예제 응용 프로그램도 살펴봅니다.

또한 이러한 각 기능에 적합한 SOAP 확장 헤더를 사용하여 보안 또는 세션 지원을 구현하는 헤더로 작업하는 경우에는 다음 항목을 읽어보는 것이 좋습니다.

[!참고]

다음 절차에서는 Visual Studio 2005를 사용하여 기존 SOAP 클라이언트 응용 프로그램을 만들었으며 Visual Studio 2005 클라이언트(C#)를 사용하여 SOAP 요청 보내기에 설명된 것처럼 SQL Server를 사용하여 만든 HTTP SOAP 끝점에 웹 참조를 추가했다고 가정합니다.

Visual Studio 프로젝트에 SOAP 확장 헤더 예제 라이브러리를 추가하려면

  1. SQL SOAP 헤더 예제 클래스 라이브러리에 대한 C# 코드 목록의 내용을 복사하여 메모장에 붙여 넣은 다음 SOAP 클라이언트 프로젝트 파일이 있는 폴더에 "SqlSoapHeader.cs"라는 이름으로 저장합니다.

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

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

  4. SOAP 클라이언트 프로젝트 파일(.csproj)을 찾아 선택합니다.

  5. 솔루션 탐색기 창에서 다음 단계를 따릅니다.

    1. 프로젝트 이름을 선택하고 마우스 오른쪽 단추를 클릭하여 추가를 가리킨 다음 기존 항목 추가를 선택합니다.

    2. 기존 항목 추가 대화 상자에서 1단계에서 저장한 위치에 있는 SqlSoapHeader.cs 파일을 찾아 선택합니다.

    3. 모든 파일 표시를 선택하고 Web References 노드를 확장한 다음 Reference.cs 파일을 선택합니다.

  6. 코드 편집기 창에서 끝점 정의 클래스에 공용 변수를 추가하여 Reference.cs 파일을 업데이트합니다. 이 변수는 SOAP 헤더 옵션 유형과 동일한 SqlSoapHeader 클래스여야 합니다.

    예를 들어 끝점 클래스 정의("sql_endpoint") 아래의 Reference.cs 파일에 SqlSoapHeader.Security 클래스의 "sqlSecurity"라는 공용 속성 변수를 추가하려면 다음 코드 줄을 추가합니다.

    public class sql_endpoint : System.Web.Services.Protocols.SoapHttpClientProtocol {
         public SqlSoapHeader.Security  sqlSecurity
    
  7. SOAP 헤더를 설정할 웹 메서드에 적절한 SoapHeaderAttribute 속성을 추가합니다.

    예를 들어 Security 클래스를 구현하는 경우 다음 코드 줄을 추가합니다.

    [System.Web.Services.Protocols.SoapHeaderAttribute("sqlSecurity")]
    public int UDFReturningAScalar() {...}
    

    [!참고]

    이 예에서 SoapHeaderAttribute와 함께 사용된 sqlSecurity 인수 값은 이전 단계에서 사용된 변수 이름과 일치해야 합니다.