Wysyłanie żądania protokołu SOAP za pomocą programu Visual Studio 2005 klient (C#)
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.
W tym temacie opisano przykładowej aplikacji, w którym Visual Studio 2005 Klient wysyła do wystąpienie żądania protokołu SOAP SQL Server i przetwarza odpowiedź protokołu SOAP. Żądania są wysyłane do metody punktu końcowego, utworzone w Przykładowe aplikacje wysyłania żądań usług sieci Web XML macierzysty.
Aby używać tej aplikacji, zaleca się zapoznanie z informacje dotyczące pojęć i procedur w się Ustawianie serwera do słuchania w trybie macierzystym żądań usług sieci Web XML i Pisania aplikacji klient.
Uwaga
Ta przykładowa aplikacja wymaga pewnych wstępnej instalacji.Przed rozpoczęciem pracy z przykładowej aplikacji, należy wykonać kroki opisane w temacie Przykładowe aplikacje wysyłania żądań usług sieci Web XML macierzysty.
Wysyłanie żądania protokołu SOAP
W tej aplikacji zestaw formularz zawierający przyciski i pola tekstowe, wymagane do wysyłania żądań protokołu SOAP z punktem końcowym.
Gdy żądanie protokołu SOAP GetCustomerInfo przechowywane procedury jest wysyłana, podana w polu tekstowym wartość Identyfikator klienta jest przekazywana jako parametr wejściowy.Jeśli nie określono wartości w polu tekstowym, przyjmowana jest pustym ciągiem i klientów, które zawierają ciąg pusty, jak ich Identyfikator klienta zwracana jest wartość. Jeśli zostanie wprowadzona wartość NULL (puste), klienci mają Identyfikator klienta NULL są zwracane.Uwaga Jeśli tak się stanie, xsi: nil = "true" atrybut zostanie automatycznie dodana w żądaniu protokołu SOAP, aby wskazać wartość parametru wartości NULL.
The GetCustomerInfo procedura przechowywana is designed to show how to handle input, output parameters, error messages, and wyniki.Aplikacja wysyła również żądania protokołu SOAP dla funkcja zdefiniowanej przez użytkownika.Ponadto wysyła żądania protokołu SOAP następujące kwerendy ad hoc:
SELECT kwerendy do pobierania wszystkich pracowników.
SELECT kwerendy do pobierania pracownika, w których identyfikator jest dostępna jako dane wejściowe.
Przetwarzanie odpowiedzi protokołu SOAP
Gdy wyniki na żądanie protokołu SOAP są zwracane w postaci tablicy obiektu klient aplikacji identyfikuje typ każdego obiektu w tablicy, a następnie przetwarza odpowiednio obiektu.Następnie aplikacja wyświetli następujące informacje dotyczące każdego elementu tablicy obiektu:
Typ danych wartości elementu tablicy.
Wartość: zestaw wyników, kod powrotu, wartości parametrów wyjściowych i tak dalej.
Tworzenie działające przykładowe
Ze względu na liczbę kroków, które należy wykonać, aby utworzyć ten przykład aplikacja jest podzielone na pięć części:
Część 1: Na wykonaćGetCustomerInfo procedura przechowywana
Część 2: wykonać SP
Część 3: wykonać kwerendy SQL z nie parametrów
Część 4: wykonać kwerendy SQL z parametrami
Część 5: wykonać funkcja zdefiniowanej przez użytkownika
Każda część zawiera zestaw instrukcji.Na końcu każdej strony można przetestować aplikację.
Część 1: wykonać GetCustomerInfo przechowywana procedura
Na klient komputera, z Program Microsoft Visual Studio 2005 grupie rozpoczęcia programówVisual Studio 2005.
Kliknij przycisk Nowy projekt.
Wybierz opcję Projekty Visual C# as the Typ projektu.
Określ NativeSOAPApp1 jako nazwa projektu
Określ lokalizację, w którym chcesz zapisać projekt.
Wybierz opcję Aplikacja systemu Windows jako szablon, a następnie kliknij przycisk OK.
W oknie eksplorator rozwiązań kliknij prawym przyciskiem myszy Odwołania, a następnie wybierz opcję Dodaj odwołanie sieci Web.Dodaj odwołanie sieci Web w inny sposób pochodzi z Projekt Wybierz opcję menuDodaj odwołanie sieci Web.
W Adres pola, wpisz https://Server/sql?wsdl, a następnie naciśnij klawisz ENTER.Należy zauważyć, że trzeba wprowadzić nazwa serwera w adresie URL.
Kliknij przycisk Dodaj odwołanie.Tworzy klas wymaganych serwera proxy, dzięki czemu można wywołać metody w dokumencie WSDL.
Część 2: wykonać SP
W menu Widok kliknij polecenie Przybornik , aby otworzyć przybornika w okienku Form1.cs [projekt].Opcjonalnie można nacisnąć klawisze CTRL + ALT + X, aby otworzyć przybornika.
W formularzu Form1 Dodaj (pole do tekstutextBox1), a button (Button1) oraz pola listy (Pole_listy1).
Kliknij prawym przyciskiem myszy pole tekstowe, a następnie zaznacz Właściwości.Zmiana Tekst wartość textBox1 to 1.Jest to domyślna wartość Identyfikator klienta.
Kliknij prawym przyciskiem myszy Button1, a następnie wybierz opcję Właściwości.
Zmiana Tekst wartość właściwość Button1 ExecSP.
Zmienianie)Nazwa) wartość właściwość do ExecSP.
Kliknij prawym przyciskiem myszy (pole listyPole_listy1), a następnie wybierz Właściwości.Zmiana HorizontalScrollbar wartość właściwość Wartość true.
Kliknij dwukrotnie ikonę ExecSP.
Skopiować ten kod z Wyświetlanie listy dla ExecSP kod C# do tej funkcja.
Należy zaktualizować kod.Zmienianie odwołań do server Nazwa hosta, identyfikowane po punkcie końcowym zostało utworzone przy użyciu CREATE punktu KOŃCOWEGO.
Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję „ kompilowanie kodu. „
Część 3: wykonać kwerendy SQL bez parametrów
Ta część aplikacji klienckiej wykonuje kwerendy ad hoc (FOR XML kwerendy), pobiera pracowników od Pracownika tabela in AdventureWorks Baza danych.
W formularzu Form1 w [Projektowania] karcie, należy dodać inny przycisk (Button1).
Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz polecenie Właściwości.
Zmiana Tekst wartość właściwość Button1 BatchQueryFindAllEmps.
Zmienianie)Nazwa) wartość właściwość do BatchQueryFindAllEmps.
Kliknij dwukrotnie ikonę BatchQueryFindAllEmps.
Skopiować ten kod z Wyświetlanie listy dla BatchQueryFindAllEmps kod C# do tej funkcja.
Należy zaktualizować kod.Zmienianie odwołań do server Nazwa hosta, identyfikowane po punkcie końcowym zostało utworzone przy użyciu CREATE punktu KOŃCOWEGO.
Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję „ kompilowanie kodu. „
Część 4: wykonać kwerendy SQL z parametry
Ta część jest podobna do poprzedniej strony, z tą różnicą, że żądanie protokołu SOAP dla kwerendy ad hoc zawiera parametr kwerendy.Kwerenda FOR XML pobiera informacje o pracownikach dla identyfikatora określonego pracownika.
W formularzu Form1 w [Projektowania] karcie, należy dodać przycisk (Button1).
Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz polecenie Właściwości.
Zmiana Tekst wartość właściwość Button1 BatchQueryFindAnEmp.
Zmienianie)Nazwa) wartość właściwość do BatchQueryFindAnEmp.
Kliknij dwukrotnie ikonę BatchQueryFindAnEmp.
Skopiować ten kod z Wyświetlanie listy dla BatchQueryFindAnEmp kod C# do tej funkcja.
Należy zaktualizować kod.Zmienianie odwołań do server Nazwa hosta, identyfikowane po punkcie końcowym zostało utworzone przy użyciu CREATE punktu KOŃCOWEGO.
Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję „ kompilowanie kodu. „
Część 5: wykonać funkcja zdefiniowanej przez użytkownika
W tej części, aplikacja kliencka wysyła żądanie protokołu SOAP UDFReturningScalar Metoda sieci Web.Ta metoda sieci Web odpowiada zwraca wartość funkcja zdefiniowanej przez użytkownika.
W formularzu Form1 w [Projektowania] zakładkę, a przycisk Dodawanie**(button1)**.
Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz polecenie Właściwości.
Zmiana Tekst wartość właściwość Button1 ExecUDFReturningScalar.
Zmiana (nazwa) wartość właściwość ExecUDFReturningScalar.
Kliknij dwukrotnie ikonę ExecUDFReturningScalar.
Dodaj kod w Wyświetlanie listy dla ExecUDFReturningScalar kod C# do tej funkcja.
Należy zaktualizować kod.Zmienianie odwołań do server Nazwa hosta, identyfikowane po punkcie końcowym zostało utworzone przy użyciu CREATE punktu KOŃCOWEGO.
Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję „ kompilowanie kodu. „
Kliknij przycisk ExecUDFReturningScalar.Wartość zwracana z funkcja zdefiniowanej przez użytkownika jest wyświetlana w polu listy.
Ponieważ punkt końcowy określa zintegrowane uwierzytelnianie, w kodzie pojawia się następujący wiersz: proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
Jeśli używasz SQL Server uwierzytelnianie, zalecamy usuwające tego wiersza i zamienić go na kod, który implementuje nagłówków WS-Security do świadczenia SQL Server-podstawie poświadczenia uwierzytelniania. Aby uzyskać więcej informacji zobaczuwierzytelnianie programu SQL Server za pośrednictwem protokołu SOAP.
Uwaga
Jeśli korzystasz z SQL Server uwierzytelniania lub uwierzytelnianie podstawowe SQL Server wymaga to użycia Secure Sockets Layer (SSL) do bezpiecznego przesyłania zaszyfrowane poświadczenia użytkownika, które w przeciwnym razie byłyby widoczne jako zwykły tekst. Aby uzyskać więcej informacji na temat włączania protokołu SSL do korzystania z punktów końcowych protokołu HTTP zobacz Konfigurowanie certyfikat do użytku przez SSL.
Kompilowanie kodu
SQL Server instaluje .NET Framework 2.0 jako część procesu instalacji. Te instrukcje tworzenia za pomocą najnowszych .NET Framework. (Jest to najwyższy numer w folderze \WINDOWS\Microsoft.NET\Framework).
Aby skompilować kod przykładowy
Zapisywanie całego projektu.
Otwórz wiersz polecenia, a następnie zlokalizuj folder, w której zostanie zapisany projekt.
Z tego folderu skopiuj plik Reference.cs z podfolderów Reference\Server sieci Web.(Na przykład skopiować "Reference\Server\Reference.cs sieci Web „). W tym samym folderze, w którym należy Form1.cs i pliki Reference.cs.
Skompiluj kod i określ nazwę pliku wykonywalnego (.exe).Na przykład jeśli nazwa pliku wykonywalnego, który jest NativeSOAPApp1.exe, wiersza polecenia jest w następujący sposób:
/Out:NativeSOAPApp1.exe \WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\csc.exe Reference.cs Form1.cs
XXXXX jest to numer folder, który odpowiada wersja .NET Framework.
Spowoduje to utworzenie pliku wykonywalnego (NativeSOAPApp1.exe) w bieżącym katalogu.
Jeśli za pomocą wcześniejszej wersja programu .NET Framework, może pojawić się błąd czas wykonania. W takim przypadku spróbuj zaktualizować GetCustomerInfo procedura przechowywana przez dodanie FOR XML AUTO Klauzula na końcu SELECT instrukcja, jak pokazano:
SELECT TOP 3 SalesOrderID, OrderDate
FROM SalesOrderHeader
WHERE CustomerID = @CustomerID
FOR XML AUTO
Wyniki wykonania procedura przechowywana są wyświetlane w polu listy.
See Also