Özel wsdl uygulamayı kullanarak

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

İçin küme özel wsdl oluşturucu örnek uygulama, aşağıdaki görevleri gerçekleştirmek vardır:

  • Kendi özel wsdl desteklemek için özel wsdl işleyicisi uygulama oluşturun.

    Bu görevi tamamlamak için bkz: Özel wsdl uygulama oluşturma.

  • Yüklemenizi yapılandırmak SQL Server kaydetme ve kullanma özel wsdl işleyicisi.

Yüklemenizi aşağıdaki değişiklikler yürütür dağıtım komut dosyası oluşturma bu göreviyle ilgili SQL Server:

  • Sunucuya özel wsdl derleme (CustomWSDL.dll) ekler ve bunu add assembly deyim ile kullanmak üzere kaydeder.

  • Doğru işlem için özel wsdl işleyicisi uygulama bağlıdır ek saklı yordamlar oluşturur.

  • Oluşturur veya değiştirir, bir http bitiş noktası adresindeki örnek, SQL Server böylece onu kendi özel wsdl işleyicisi kullanmak ve geri dönmek için özel bir wsdl yanıt, varsayılan veya yerine basit wsdl yanıt.

Özel wsdl işleyici dağıtma

Aşağıdaki yordam, çalıştırılan bir bilgisayarda yerel yönetici olarak oturum açtığınız varsayılmıştır SQL Server, ya da ona uzaktan yönetim ayrıcalıkları. ile bağlanabileceğiniz

Bölüm 1: Sunucu Yapılandırma

  1. De 'iSQL Server Management Studio Yeni bir sorgu ve sunucuya bağlanın.

  2. Aşağıdaki Transact-SQL komut dosyası sorgu penceresi.

    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. Komut dosyasını yürütün.

Bölüm 2: İşleyici sınaması

Özel wsdl emin olmak için işleyicisi işlevler düzgün, değiştirilen url sorgu dizeleri özel wsdl isteği için kullanmayı deneyin.Örneğin, örnek , SQL Server , bağlandığınız adlı MyServer ve önceki komut dosyası kullanılırsa, sunucunun üzerinde kurulmuş bir bitiş noktası yol olmalıdır sql/WSDL, hangi yanıt kullanarak özel wsdl işleyicisi.Bu nedenle, bu bitiş noktasına bağlanma sınamak ve özel wsdl isteği sağlamak için aşağıdaki gibi bir url http Web tarayıcısında kullanacağınız istemci:

http://MyServer/sql/WSDL?wsdlargument

Değeri bağımsız değişkeni dizelerin her biri farklı istemci ve wsdl türleri için destek aşağıdaki özel wsdl tanımlayıcılar herhangi biri olabilir.

Özel wsdl URL'si

Açıklama

everett

Kullanılarak geliştirilen basit Web istemcileri için Visual Studio 2003 Geliştirici Araçları.

jbuilder

Borland JBuilder 9.0 geliştirici araçları kullanılarak geliştirilen basit Web istemcileri için.

glue

WebMethods Birleştirici 5.0.1 geliştirici araçları kullanılarak geliştirilen basit Web istemcileri için.

Aşağıdaki gösterildiği gibi tablo, <argument> değeri geri döndürür (tüm xsd doğal türlerine) basit bir wsdl bu özel seçimler; tümü için Ancak, tam genişletilmiş wsdl istiyorsanız, ekleme extended sorgu değişkeni, dize.

Basit wsdl tanımlayıcısı

Genişletilmiş wsdl tanımlayıcısı

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