Share via


사용자 지정 WSDL 응용 프로그램 사용

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

사용자 지정 WSDL 생성기 예제 응용 프로그램을 설치하려면 다음 태스크를 수행해야 합니다.

  • 사용자의 WSDL을 지원하는 사용자 지정 WSDL 처리기 응용 프로그램을 만듭니다.

    이 태스크를 수행하려면 사용자 지정 WSDL 응용 프로그램 구축을 참조하십시오.

  • 사용자 지정 WSDL 처리기를 등록 및 사용할 수 있도록 SQL Server를 구성합니다.

이 태스크를 수행하려면 SQL Server에서 다음 사항을 수정하는 배포 스크립트를 만들어야 합니다.

  • 사용자 지정 WSDL 어셈블리(CustomWSDL.dll)를 서버에 추가하고 ADD ASSEMBLY 문에 사용할 수 있도록 등록합니다.

  • 사용자 지정 WSDL 처리기 응용 프로그램이 현재 작업에 사용할 추가 저장 프로시저를 작성합니다.

  • SQL Server 인스턴스에서 사용자 지정 WSDL 처리기를 사용하고 기본 또는 단순 WSDL 응답 대신 사용자 지정 WSDL 응답을 반환하도록 HTTP 끝점을 만들거나 수정합니다.

사용자 지정 WSDL 처리기 배포

다음 절차는 사용자가 SQL Server를 실행하는 컴퓨터에 로컬 관리자로 로그인했거나 관리자 권한을 사용하여 원격에서 이 컴퓨터에 연결할 수 있다고 가정합니다.

1단계: 서버 구성

  1. SQL Server Management Studio에서 새 쿼리를 클릭하고 서버에 연결합니다.

  2. 다음 Transact-SQL 스크립트를 쿼리 창에 복사합니다.

    USE master 
    GO
    
    -- Drop myWSDL procedure if it exists.
    IF (SELECT count(*) FROM sysobjects WHERE name = 'myWSDL') = 1 
    DROP PROCEDURE myWSDL
    GO
    
    -- Drop CustomWSDL assembly if it exists.
    DROP ASSEMBLY CustomWSDL
    GO
    
    -- Update the path to the compiled assembly as necessary.
    CREATE ASSEMBLY CustomWSDL FROM 'C:\temp\CustomWSDL.dll'
    GO 
    
    -- Create a stored procedure to map to the common lanugage
    -- runtime (CLR) method As with any other SQL Server stored procedure
    -- that maps to a CLR method, the actual stored procedure name 
    -- ('myWSDL') can be arbitrarily specified.
    CREATE PROCEDURE myWSDL
    (
    @endpointID as int,
    @isSSL as bit,
    @host as nvarchar(256),
    @queryString as nvarchar(256),
    @userAgent as nvarchar(256)
    )
    AS EXTERNAL NAME CustomWSDL.[MSSql.CustomWSDL].GenerateWSDL
    GO
    
    -- Follow the security guidelines set up for your environment.
    -- The following example is meant to be used for development or 
    -- testing purposes only.
    GRANT EXEC on myWSDL to [PUBLIC]
    GO
    
    -- The following is a sample stored procedure (InOut) that
    -- demonstrates the configuration of an HTTP endpoint. 
    -- If the InOut stored procedure already exists, it is dropped.
    IF (SELECT count(*) FROM sysobjects WHERE name = 'InOut') = 1 DROP PROC InOut
    GO
    
    CREATE PROC InOut
             @InParam int,
             @OutParam nvarchar(100) output
    AS
    SELECT * FROM syslanguages WHERE langid = @InParam
    SELECT @OutParam = [name] FROM syslanguages WHERE langid = @InParam
    PRINT @OutParam
    SELECT * FROM syslanguages WHERE langid = @InParam FOR XML raw, XMLSCHEMA
    RETURN 1
    GO
    GRANT EXEC on InOut to [PUBLIC]
    
    -- The following creates a sample HTTP endpoint to demonstrate 
    -- the endpoint setup. If the sample endpoint already exists, it
    -- is first dropped.
    IF (SELECT count(*) FROM [msdb].sys.http_endpoints WHERE name = 'sql_endpoint') = 1
    DROP ENDPOINT sql_endpoint
    GO
    
    CREATE ENDPOINT sql_endpoint
             STATE=STARTED
    AS HTTP (
             SITE='*',
             PATH='/sql/WSDL',
             PORTS=(CLEAR),
             CLEAR_PORT=80,
             AUTHENTICATION=(DIGEST, INTEGRATED)
    )
    FOR SOAP
    (
             WEBMETHOD 'http://myNS.com/'.'InOut' ( NAME='master.dbo.InOut' ),
             DATABASE = 'master',
             WSDL='master.dbo.myWSDL',
             Batches=enabled,
             SCHEMA = STANDARD
    )
    
    GRANT CONNECT ON ENDPOINT::sql_endpoint to [PUBLIC]
    
  3. 스크립트를 실행합니다.

2단계: 처리기 테스트

사용자 지정 WSDL 처리기가 제대로 작동하는지 확인하려면 수정한 URL 쿼리 문자열을 사용하여 사용자 지정 WSDL을 요청합니다. 예를 들어 연결 중인 SQL Server 인스턴스의 이름이 MyServer이고 앞의 스크립트를 사용한 경우에는 사용자 지정 WSDL 처리기를 사용하여 응답하는 sql/WSDL 서버에 해당 끝점 경로가 설정되어 있어야 합니다. 따라서 이 끝점에 대한 연결을 테스트하고 사용자 지정 WSDL 요청을 제공하려면 HTTP 웹 브라우저 클라이언트에서 다음과 같은 URL을 사용합니다.

http://MyServer/sql/WSDL?wsdlargument

argument 값은 각 클라이언트 및 WSDL 형식에 대한 문자열을 지원하는 다음 사용자 지정 WSDL 식별자 중 하나가 될 수 있습니다.

사용자 지정 WSDL URL

설명

everett

Visual Studio 2003 개발자 도구를 사용하여 개발한 단순한 웹 클라이언트에 사용됩니다.

jbuilder

Borland JBuilder 9.0 개발자 도구를 사용하여 개발한 단순한 웹 클라이언트에 사용됩니다.

glue

webMethods Glue 5.0.1 개발자 도구를 사용하여 개발한 단순한 웹 클라이언트에 사용됩니다.

다음 표에서 볼 수 있듯이 <argument> 값은 세 사용자 지정 WSDL URL에 대해 단순 WSDL(모두 XSD 네이티브 형식)을 반환하지만, 완전한 확장 WSDL이 필요한 경우에는 쿼리 인수 문자열에 extended를 추가하면 됩니다.

단순 WSDL 식별자

확장 WSDL 식별자

http://MyServer/sql/WSDL?wsdleverett

http://MyServer/sql/WSDL?wsdleverettextended

http://MyServer/sql/WSDL?wsdljbuilder

http://MyServer/sql/WSDL?wsdljbuilderextended

http://MyServer/sql/WSDL?wsdlglue

http://MyServer/sql/WSDL?wsdlglueextended