Przy użyciu niestandardowej aplikacji WSDL

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Aby zestaw zapasowe niestandardowych aplikacji przykładowej generator WSDL, należy wykonać następujące zadania:

  • Tworzenie niestandardowej aplikacji obsługi WSDL do obsługi sieci szczególnych WSDL.

    Do wykonania tego zadania, zobacz Tworzenie niestandardowych aplikacji WSDL.

  • Konfigurowanie instalacji SQL Server do rejestrowania i użyć niestandardowego programu obsługi WSDL.

Zadanie to wymaga utworzenia skryptu wdrażania, który wykonuje następujące modyfikacje do instalacji SQL Server:

  • Dodaje niestandardowe wirtualny plik dziennika WSDL (CustomWSDL.dll) do serwera i rejestruje go do użytku z wirtualny plik dziennika dodać instrukcja.

  • Tworzy dodatkowe procedury przechowywanej, które niestandardowych aplikacji obsługi WSDL zależy do poprawnego działania.

  • Tworzy lub modyfikuje punkt końcowy HTTP na wystąpienie z SQL Server Tak, aby będzie używać niestandardowych obsługi WSDL zwrócić odpowiedź niestandardową WSDL, zamiast domyślnego lub prostych odpowiedzi WSDL.

Wdrażanie obsługi WSDL niestandardowe

W poniższej procedurze przyjęto, że użytkownik jest zalogowany jako administrator lokalny na komputerze z systemem SQL Server, lub które można podłączyć do niego zdalnie z uprawnieniami administracyjnymi.

Część 1: Skonfiguruj serwer

  1. W SQL Server Management Studio, kliknij Nową kwerendę i połączenia z serwerem.

  2. Skopiuj następujące Transact-SQL skrypt w oknie kwerendy.

    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. Uruchom skrypt.

Część 2: Testowanie obsługi

Upewnić się, że WSDL niestandardowe funkcje obsługi prawidłowo, spróbuj przy użyciu zmodyfikowanego ciągi kwerend URL żądania niestandardowego WSDL.Na przykład jeśli wystąpienie SQL Server nazwą jest nawiązywane z MyServer i poprzedni skrypt jest używany, powinien on to ścieżka punktu końcowego ustanowione na serwerze z sql/WSDL, który będzie odpowiadał za pomocą niestandardowego programu obsługi WSDL.W związku z tym aby przetestować połączenie tego punktu końcowego i dostarcza żądanie niestandardowe WSDL, można użyć adresu URL, taki jak poniższy klient HTTP sieci Web w przeglądarce:

http://MyServer/sql/WSDL?wsdlargument

Wartość argumentu może być jedną z następujących identyfikatorów WSDL niestandardowych obsługujących ciągi dla każdego innego klient i typów WSDL.

Niestandardowy adres URL WSDL

Opis

everett

Proste klientów sieci Web, opracowany przy użyciu Visual Studio Narzędzia developer 2003.

jbuilder

Opracowany przy użyciu narzędzia deweloperskie Borland JBuilder 9.0 proste klientów sieci Web.

glue

Opracowany przy użyciu elementów WebMethod narzędzia deweloperskie przyklejanie 5.0.1 proste klientów sieci Web.

Jak pokazano w poniższej tabela, <argument> wartość zwraca proste WSDL (wszystkie rodzaje macierzystym XSD) dla wszystkich trzech opcji niestandardowych; Jednak jeśli pełni rozszerzony WSDL, można dołączyć extended ciąg argumentu kwerendy.

Identyfikator języka WSDL proste

Rozszerzony identyfikator 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