Udostępnij za pośrednictwem


Punkty końcowe protokołów SOAP i HTTP

W przykładzie SoapAndHttpEndpoints pokazano, jak zaimplementować usługę opartą na protokole RPC i uwidocznić ją w formacie SOAP i formacie "Zwykły stary kod XML" (POX) przy użyciu modelu programowania internetowego WCF. Zobacz przykład podstawową usługę HTTP, aby uzyskać więcej informacji na temat powiązania HTTP dla usługi. Ten przykład koncentruje się na szczegółach dotyczących uwidaczniania tej samej usługi za pośrednictwem protokołu SOAP i PROTOKOŁU HTTP przy użyciu różnych powiązań.

Demonstracje

Uwidacznianie usługi RPC za pośrednictwem protokołu SOAP i HTTP przy użyciu programu WCF.

Dyskusja

Ten przykład składa się z dwóch składników: projektu aplikacji internetowej (usługi), który zawiera usługę WCF i aplikację konsolową (klient), która wywołuje operacje usługi przy użyciu powiązań PROTOKOŁU SOAP i HTTP.

Usługa WCF uwidacznia 2 operacje —GetData i PutData — które echo ciągu, który został przekazany jako dane wejściowe. Operacje usługi są oznaczone adnotacjami i WebGetAttributeWebInvokeAttribute. Te atrybuty kontrolują projekcję HTTP tych operacji. Ponadto są one oznaczone adnotacjami OperationContractAttribute, co umożliwia ich uwidocznienie za pośrednictwem powiązań protokołu SOAP. Metoda usługi PutData zgłasza błąd WebFaultException, który jest wysyłany z powrotem przez protokół HTTP przy użyciu kodu stanu HTTP i jest wysyłany z powrotem za pośrednictwem protokołu SOAP jako błąd protokołu SOAP.

Plik Web.config konfiguruje usługę WCF z 3 punktami końcowymi:

  • Punkt końcowy ~/service.svc/mex, który uwidacznia metadane usługi w celu uzyskania dostępu przez klientów opartych na protokole SOAP.

  • Punkt końcowy ~/service.svc/http, który umożliwia klientom dostęp do usługi przy użyciu powiązania HTTP.

  • Punkt końcowy ~/service.svc/soap, który umożliwia klientom dostęp do usługi przy użyciu protokołu SOAP za pośrednictwem powiązania HTTP.

Punkt końcowy HTTP jest skonfigurowany przy użyciu standardowego punktu końcowego<webHttp>, który ma helpEnabled ustawioną wartość .true W związku z tym usługa uwidacznia stronę pomocy opartej na protokole XHTML pod adresem ~/service.svc/http/help, za pomocą którego klienci bazujący na protokole HTTP mogą uzyskiwać dostęp do usługi.

Projekt klienta demonstruje dostęp do usługi przy użyciu serwera proxy protokołu SOAP (wygenerowanego za pomocą polecenia Dodaj odwołanie do usługi) i uzyskiwania dostępu do usługi przy użyciu polecenia WebClient.

Przykład składa się z usługi hostowanej w Sieci Web i aplikacji konsolowej. Gdy aplikacja konsolowa jest uruchamiana, klient wysyła żądania do usługi i zapisuje odpowiednie informacje z odpowiedzi do okna konsoli.

Aby uruchomić przykład

  1. Otwórz rozwiązanie dla przykładowych punktów końcowych PROTOKOŁU SOAP i HTTP.

  2. Naciśnij klawisze Ctrl+Shift+B, aby skompilować rozwiązanie.

  3. Jeśli jeszcze nie jest otwarty, naciśnij klawisze CTRL+W, S, aby otworzyć okno Eksplorator rozwiązań.

  4. W oknie Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt Usługi i umieść kursor nad opcją menu kontekstowego Debuguj, aby wyświetlić menu kontekstowe Uruchom nowe wystąpienie. Kliknij przycisk Start New Instance (Uruchom nowe wystąpienie). Spowoduje to uruchomienie ASP.NET serwera programistycznego, który hostuje usługę.

  5. W oknach Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt Klient i umieść kursor nad opcją menu kontekstowego Debuguj, aby wyświetlić menu kontekstowe Uruchom nowe wystąpienie. Kliknij przycisk Start New Instance (Uruchom nowe wystąpienie).

  6. Zostanie wyświetlone okno konsoli klienta i zostanie wyświetlony identyfikator URI uruchomionej usługi oraz identyfikator URI strony pomocy HTML dla uruchomionej usługi. W dowolnym momencie możesz wyświetlić stronę pomocy HTML, wpisując identyfikator URI strony pomocy w przeglądarce.

  7. Podczas uruchamiania przykładu klient zapisuje stan bieżącego działania.

  8. Naciśnij dowolny klawisz, aby zakończyć działanie aplikacji konsolowej klienta.

  9. Naciśnij klawisze SHIFT+F5, aby zatrzymać debugowanie usługi.

  10. W obszarze powiadomień systemu Windows kliknij prawym przyciskiem myszy ikonę serwera dewelopera ASP.NET i wybierz polecenie Zatrzymaj z menu kontekstowego.