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
W SQL Server Management Studio, kliknij Nową kwerendę i połączenia z serwerem.
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]
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 |