Udostępnij za pośrednictwem


Wysyłanie żądań protokołu SOAP przy użyciu programu Visual Studio 2005 klienta (C#)

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.

W tym temacie opisano przykładowej aplikacji, w której Visual Studio 2005 klient wysyła żądania protokołu SOAP do wystąpienie SQL Server i przetwarza odpowiedź protokołu SOAP.Żądania są wysyłane dla metod punktu końcowego, utworzone w Przykładowe aplikacje do wysyłania żądań usług sieci Web XML macierzystego.

Aby używać tej aplikacji, zaleca się być zaznajomieni z informacje koncepcyjne i proceduralne w Ustawienie serwera do nasłuchiwania macierzystego żądań usług sieci Web XML i Aplikacje klienckie pisania.

Ostrzeżenie

Ta przykładowa aplikacja wymaga niektórych instalacji początkowej.Przed rozpoczęciem pracy z przykładowej aplikacji, należy wykonać kroki opisane w Przykładowe aplikacje do wysyłania żądań usług sieci Web XML macierzystego.

Wysyłanie żądań protokołu SOAP

W tej aplikacji jest zestaw w górę formularz z przycisków i pól tekstowych, wymagane do wysyłania żądań protokołu SOAP do punktu końcowego.

Gdy żądanie protokołu SOAP GetCustomerInfo procedura składowana jest wysyłana, w polu tekstowym wartość Identyfikatora 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, mieć ciąg pustego jako ich IDklienta zwrócona wartość.Jeśli zostanie wprowadzona wartość NULL (puste), klienci mają IDklienta Null są zwracane.Uwaga w takim przypadku xsi: nil = "true" atrybut jest automatycznie dodawany w żądaniu protokołu SOAP, aby wskazać wartość parametru NULL.

GetCustomerInfo procedura składowana zaprojektowano w taki sposób, aby pokazać sposób obsługi danych wejściowych, parametry wyjściowe, komunikaty o błędach i wyniki.Aplikacja wysyła również SOAP żądania dla funkcja zdefiniowanej przez użytkownika.Ponadto wysyła żądania protokołu SOAP kwerend ad hoc następujące:

  • Wybierz kwerendę, aby pobrać wszystkich pracowników.

  • Wybierz kwerendę, aby pobrać pracownika, którego identyfikator jest podany jako danych wejściowych.

Przetwarzanie odpowiedzi protokołu SOAP

Gdy wyniki żądanie protokołu SOAP są zwracane jako tablica obiektów, aplikacja klient identyfikuje typ każdego obiektu w tablicy i odpowiednio przetwarza obiekt.Następnie aplikacja wyświetla następujące informacje dotyczące każdego elementu tablicy obiektu:

  • Typ danych wartości elementu tablicy.

  • Wartość: zestaw wyników, kod zwrotny, wartości parametrów wyjściowych i tak dalej.

Tworzenie działający przykładowy

Ze względu na liczbę kroków, które należy wykonać, aby utworzyć ten przykład aplikacja jest podzielone na pięciu części:

  • Część 1: Wykonanie GetCustomerInfo procedura składowana

  • Część 2: Wykonanie SP

  • Część 3: Kwerenda SQL bez parametrów

  • Część 4: Kwerenda SQL z parametrami

  • Część 5: Wykonanie funkcja zdefiniowanej przez użytkownika

Każda część zawiera zestaw instrukcji.Na końcu każdej części można przetestować aplikację.

Część 1: GetCustomerInfo uruchomić procedurę przechowywaną

  1. Na klient komputer, z Microsoft Visual Studio 2005 grupy programów, start Visual Studio 2005.

  2. Kliknij Nowy projekt.

  3. Wybierz Visual C# projektów jako typu projektu.

  4. Określić NativeSOAPApp1 nazwę projektu

  5. Określ lokalizację, w której chcesz zapisać projekt.

  6. Wybierz Aplikacji systemu Windows jako szablon, a następnie kliknij OK.

  7. W oknie Solution Explorer kliknij prawym przyciskiem myszy odniesienia, a następnie wybierz Dodawanie odwołania sieci Web.Innym sposobem na dodawanie odwołania sieci Web jest z projektu menu wybierz Dodawanie odwołania sieci Web.

  8. W adres wpisz https://Server/sql?wsdl, a następnie naciśnij klawisz ENTER.Należy zauważyć, że należy wprowadzić nazwa serwera w adresie URL.

  9. Kliknij Dodaj odwołanie.Tworzy klasy proxy wymagane, dzięki czemu można wywoływać metody w dokumencie WSDL.

Część 2: Wykonanie SP

  1. W menu Widok kliknij polecenie Przybornik otworzyć przybornika w okienku pliku Form1.cs [projekt].Opcjonalnie można nacisnąć klawisz CTRL + ALT + X, aby otworzyć przybornika.

  2. W formularzu Form1, Dodaj pole tekstowe (Poletekstowe1), przycisk (button1) oraz pola listy (Pole_listy1).

  3. Kliknij prawym przyciskiem myszy pole tekstowe, a następnie wybierz Właściwości.Zmień tekstu wartość z Poletekstowe1 1.Jest to domyślna wartość Identyfikator klienta.

  4. Kliknij prawym przyciskiem myszy button1, a następnie wybierz Właściwości.

    1. Zmień tekstu wartości właściwość z button1 do ExecSP.

    2. Zmień (nazwę) wartość właściwość ExecSP.

  5. Kliknij prawym przyciskiem myszy pole listy (Pole_listy1), a następnie wybierz Właściwości.Zmień HorizontalScrollbar wartość właściwość True.

  6. Kliknij dwukrotnie ExecSP.

  7. Skopiuj kod z C# kod aukcji dla ExecSP do tej funkcja.

  8. Aktualizacja kodu.Zmiana odwołań do server nazwy hosta zidentyfikowany podczas tworzenia punktu końcowego przy użyciu tworzenie punktu KOŃCOWEGO.

  9. Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję "Kompilowanie kodu".

Część 3: Wykonanie kwerendy SQL bez parametrów

Ta część aplikacji klient wykonuje kwerendy ad hoc (XML dla kwerendy), która pobiera pracowników z pracownika tabela w AdventureWorks2008R2 bazy danych.

  1. W formularzu Form1 w [projekt] karcie, należy dodać inny przycisk (button1).

  2. Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz Właściwości.

    1. Zmień tekstu wartości właściwość z button1 do BatchQueryFindAllEmps.

    2. Zmień (nazwę) wartość właściwość BatchQueryFindAllEmps.

  3. Kliknij dwukrotnie BatchQueryFindAllEmps.

  4. Skopiuj kod z C# kod aukcji dla BatchQueryFindAllEmps do tej funkcja.

  5. Aktualizacja kodu.Zmiana odwołań do server nazwy hosta zidentyfikowany podczas tworzenia punktu końcowego przy użyciu tworzenie punktu KOŃCOWEGO.

  6. Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję "Kompilowanie kodu".

Część 4: Wykonanie kwerendy SQL z parametrami

Ta część jest podobny do poprzedniego części chyba, że żądanie protokołu SOAP dla kwerend ad hoc zawiera parametr kwerendy.XML dla kwerenda pobiera informacje o pracownikach dla identyfikatora określonego pracownika.

  1. W formularzu Form1 w [projekt] karta, dodać przycisk (button1).

  2. Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz Właściwości.

    1. Zmień tekstu wartości właściwość z button1 do BatchQueryFindAnEmp.

    2. Zmień (nazwę) wartość właściwość BatchQueryFindAnEmp.

  3. Kliknij dwukrotnie BatchQueryFindAnEmp.

  4. Skopiuj kod z C# kod aukcji dla BatchQueryFindAnEmp do tej funkcja.

  5. Aktualizacja kodu.Zmiana odwołań do server nazwy hosta zidentyfikowany podczas tworzenia punktu końcowego przy użyciu tworzenie punktu KOŃCOWEGO.

  6. Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję "Kompilowanie kodu".

Część 5: Wykonanie funkcji zdefiniowanej przez użytkownika

W tej części aplikacji klient wysyła żądanie protokołu SOAP UDFReturningScalar Web metoda.Ta metoda sieci Web odpowiada funkcja zdefiniowanej przez użytkownika, który zwraca wartość całkowitą.

  1. W formularzu Form1 w [projekt] karta, dodać przycisk (button1).

  2. Kliknij prawym przyciskiem myszy ten przycisk Nowy, a następnie wybierz Właściwości.

    1. Zmień tekstu wartości właściwość z button1 do ExecUDFReturningScalar.

    2. Zmień (nazwa) wartość właściwość ExecUDFReturningScalar.

  3. Kliknij dwukrotnie ExecUDFReturningScalar.

  4. Dodaj kod w C# kod aukcji dla ExecUDFReturningScalar do tej funkcja.

  5. Aktualizacja kodu.Zmiana odwołań do server nazwy hosta zidentyfikowany podczas tworzenia punktu końcowego przy użyciu tworzenie punktu KOŃCOWEGO.

  6. Zapisz i skompilować projekt.Aby uzyskać więcej informacji zobacz poprzednią sekcję "Kompilowanie kodu".

  7. Kliknij ExecUDFReturningScalar.Wartość zwrócona przez funkcja zdefiniowaną przez użytkownika jest wyświetlany 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, aby usunąć tego wiersza i zamienić go na kod, który implementuje nagłówków WS-Security zapewnienie SQL Server-na podstawie poświadczenia uwierzytelnianie.Aby uzyskać więcej informacji, zobacz Uwierzytelniania programu SQL Server za pośrednictwem protokołu SOAP.

Ostrzeżenie

Jeśli używasz albo SQL Server uwierzytelniania lub uwierzytelnianie podstawowe, SQL Server wymaga użycia Secure Sockets Layer (SSL) dla bezpiecznej transmisji zaszyfrowanych poświadczenia użytkownika, które w przeciwnym razie byłyby widoczne jako jasne tekstu.Aby uzyskać więcej informacji na temat włączania protokołu SSL w celu korzystania z punktami końcowymi HTTP, zobacz Konfigurowanie certyfikatów do użytku przez SSL.

Kompilowanie kodu

SQL ServerInstaluje .NET Framework 2.0 jako część jego procesu instalacji.Instrukcje te kompilacji używać najnowszych .NET Framework.(Jest najwyższy w folderze \WINDOWS\Microsoft.NET\Framework).

Aby skompilować kod przykładowy

  1. Zapisywanie całego projektu.

  2. Otwórz wiersz polecenia, a następnie zlokalizuj folder, w którym projekt jest zapisany.

  3. Z tego folderu skopiuj plik Reference.cs z podfolderu Reference\Server sieci Web.(Na przykład skopiować "Web Reference\Server\Reference.cs"). Pliku Form1.cs i Reference.cs pliki powinny być w tym samym folderze.

  4. Skompilować kod i określ nazwę pliku wykonywalnego (.exe).Na przykład jeśli nazwa pliku wykonywalnego, który jest NativeSOAPApp1.exe, wiersza polecenia wyglądałyby następująco:

    /Out:NativeSOAPApp1.exe \WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\csc.exe Reference.cs pliku Form1.cs

    XXXXX jest liczbą folder odpowiadający wersja .NET Framework.

    Spowoduje to utworzenie pliku wykonywalnego (NativeSOAPApp1.exe) w bieżącym katalogu.

Jeśli używasz wcześniejszej wersja programu .NET Framework, może pojawić się uruchamianie -czas błąd.W takim przypadku spróbuj zaktualizować GetCustomerInfo procedura składowana przez dodanie FOR XML AUTO klauzula na koniec SELECT instrukcja, jak pokazano:

SELECT TOP 3 SalesOrderID, OrderDate 
FROM   SalesOrderHeader
WHERE  CustomerID = @CustomerID
FOR XML AUTO

Wyniki wykonywanie procedura składowana są wyświetlane w polu listy.