Udostępnij za pośrednictwem


Przy użyciu aplikacji WSDL niestandardowe

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Aby skonfigurować niestandardowe WSDL generator przykładowej aplikacji, należy wykonywać następujące zadania:

  • Tworzenie niestandardowych WSDL obsługi aplikacji do obsługi sieci określonego języka WSDL.

    Aby wykonać to zadanie, zobacz Tworzenie niestandardowych aplikacji WSDL.

  • Konfigurowanie instalacji systemu SQL Server do rejestrowania i użyć niestandardowego programu obsługi w języku WSDL.

To zadanie wymaga utworzenia skryptu wdrażania, który wykonuje następujących modyfikacji do instalacji systemu SQL Server:

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

  • Powoduje utworzenie dodatkowych procedur przechowywanych, które niestandardowych aplikacji obsługi języka WSDL zależy do poprawnego działania.

  • Tworzy lub modyfikuje punkt końcowy HTTP w przypadku programu SQL Server tak, aby go będzie użyć niestandardowego programu obsługi języka WSDL i zwracają niestandardowe odpowiedzi WSDL, zamiast domyślnego lub proste odpowiedzi WSDL.

Wdrażanie programu obsługi języka WSDL niestandardowe

Poniższa procedura zakłada, że użytkownik jest zalogowany jako administrator lokalny na komputerze, na którym jest uruchomiony SQL Server, lub które są niezbędne do połączenia się z nim zdalnie z uprawnieniami administracyjnymi.

Część 1: Konfigurowanie serwera

  1. W SQL Server Management Studio, kliknij przycisk Nowa kwerenda i połączyć się 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. wykonać skryptu.

Część 2: Testowanie obsługa

Aby upewnić się, że WSDL niestandardowe funkcje obsługi poprawnie, spróbuj przy użyciu zmodyfikowanego ciągów kwerendy adresu URL żądania niestandardowe WSDL.Na przykład jeśli wystąpienie SQL Server czy łączysz się z nosi nazwę MyServer i poprzedni skrypt jest używany, powinien mieć to ścieżka punktu końcowego na serwerze sql/WSDL, który odpowiada za pomocą niestandardowego programu obsługi w języku WSDL. W związku z tym aby przetestować połączenie z tym punktem końcowym i zapewniać żądanie niestandardowe WSDL, należałoby użyć adresu URL, na przykład następujące w przeglądarce klient HTTP sieci Web:

http://MyServer/sql/WSDL?wsdlargument

Wartość argument może być jeden 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

Description

everett

Opracowane za pomocą prostego klientów w sieci Web Visual Studio narzędzia dla deweloperów 2003.

jbuilder

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

glue

Opracowany przy użyciu narzędzia dla deweloperów przyklej 5.0.1 webMethods proste klientów w sieci Web.

Jak pokazano w poniższej tabela <argument> wartość zwraca prostego języka WSDL (wszystkie rodzaje macierzystym XSD) dla wszystkich trzech te opcje niestandardowe, jednak Chcąc pełni rozszerzony WSDL, można dołączyć extended argument ciąg kwerendy.

Identyfikator języka WSDL proste

Rozszerzony identyfikator języka 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