Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este ejemplo muestra cómo implementar un servicio basado en RPC y exponerlo en el formato SOAP y en el formato POX utilizando el modelo de programación web de WCF. Vea el ejemplo Servicio HTTP básico para obtener más detalles acerca del enlace HTTP del servicio. Este ejemplo se centra en los detalles relativos a la exposición del mismo servicio a través de SOAP y HTTP utilizando enlaces diferentes.
Demostraciones
Exponer un servicio RPC sobre SOAP y HTTP utilizando WCF.
Análisis
Este ejemplo tiene dos componentes: un proyecto Aplicación web (Servicio) que contiene un servicio de WCF y una aplicación de consola (Cliente) que invoca las operaciones de servicio mediante enlaces HTTP y SOAP.
El servicio de WCF expone dos operaciones, GetData
y PutData
, que repiten la cadena que se pasó como entrada. A las operaciones de servicio se les agregan los objetos WebGetAttribute y WebInvokeAttribute. Estos atributos controlan la proyección HTTP de estas operaciones. Además, se les agrega el objeto OperationContractAttribute, que les permite ser expuestos a través de enlaces SOAP. El método PutData
del servicio inicia una excepción WebFaultException, que se devuelve a través de HTTP utilizando el código de estado HTTP y se devuelve a través de SOAP como un error de SOAP.
El archivo Web.config configura el servicio de WCF con tres extremos:
El extremo ~/service.svc/mex que expone los metadatos del servicio para el acceso de los clientes basados en SOAP.
El extremo ~/service.svc/http que permite a los clientes tener acceso al servicio utilizando el enlace HTTP.
El extremo ~/service.svc/soap que permite a los clientes tener acceso al servicio utilizando el enlace SOAP sobre HTTP.
El extremo HTTP se configura con un extremo estándar <webHttp> que tiene helpEnabled establecido en true. Como resultado, el servicio expone XHTML basado en la página de Ayuda en ~/service.svc/http/help que los clientes basados en HTTP pueden utilizar para tener acceso al servicio.
El proyecto de cliente muestra cómo tener acceso al servicio utilizando un proxy de SOAP (generado a través de Agregar referencia de servicio) y WebClient.
El ejemplo está compuesto de un servicio hospedado en web y una aplicación de consola. A medida que se ejecuta la aplicación de consola, el cliente realiza solicitudes al servicio y escribe la información pertinente de las respuestas en la ventana de la consola.
Para ejecutar el ejemplo
Abra la solución para obtener el ejemplo de extremos HTTP y SOAP.
Presione F6 para compilar la solución.
Si no está abierta aún, presione CTRL+W, S para abrir la ventana del Explorador de soluciones.
En la ventana del Explorador de soluciones, haga clic con el botón secundario en el proyecto de Servicio, coloque el cursor sobre la opción de menú contextual Depurar para que el menú contextual Iniciar nueva instancia aparezca. Haga clic en Iniciar nueva instancia. De esta forma se inicia el servidor de desarrollo de ASP.NET, que hospeda el servicio.
En las ventanas del Explorador de soluciones, haga clic con el botón secundario en el proyecto de Cliente, coloque el cursor sobre la opción de menú contextual Depurar para que el menú contextual Iniciar nueva instancia aparezca. Haga clic en Iniciar nueva instancia.
La ventana de la consola del cliente aparece y proporciona el URI del servicio en ejecución y el URI de la página de Ayuda HTML para este. Puede ver la página de Ayuda HTML en cualquier momento escribiendo su URI en un explorador.
A medida que el ejemplo se ejecuta, el cliente escribe el estado de la actividad actual.
Presione cualquier tecla para terminar la aplicación de consola del cliente.
Presione MAYÚS+F5 para dejar de depurar el servicio.
En el Área de notificación de Windows, haga clic con el botón secundario en el icono de servidor de desarrollo de ASP.NET y seleccione Detener en el menú contextual.
![]() |
---|
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.
<InstallDrive>:\WF_WCF_Samples
Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Web\SoapAndHttpEndpoints
|