Compartir a través de


Procedimiento para hospedar y ejecutar un servicio básico de Windows Communication Foundation

Ésta es la tercera de las seis tareas necesarias para crear un servicio Windows Communication Foundation (WCF) básico y un cliente que pueda llamar al servicio. Para obtener información general de las seis tareas, consulte el tema Tutorial de introducción.

En este tema se describe cómo ejecutar un servicio básico de Windows Communication Foundation (WCF). Este procedimiento consta de los siguientes pasos:

  • Crear una dirección base para el servicio.
  • Crear un host del servicio para el servicio.
  • Habilitar el intercambio de metadatos
  • Abrir el host del servicio.

En el ejemplo que se ofrece después del procedimiento, se proporciona una lista completa del código escrito en esta tarea. Agregue el código siguiente al método Main() definido en la clase Program. Esta clase se generó al crear la solución Service.

Configuración de una dirección base para el servicio

  1. Cree una instancia de Uri para la dirección base del servicio. Este identificador URI especifica el esquema HTTP, su equipo local, el número de puerto 8000 y la ruta de acceso ServiceModelSample/Service correspondiente al servicio que se especificó para el espacio de nombres del servicio del contrato.

Hospedaje del servicio.

  1. Importe el espacio de nombres System.ServiceModel.Description. Esta línea de código se debería colocar en la parte superior del archivo Program.cs/Program.vb con el resto de las instrucciones using o imports.

  2. Cree una nueva instancia de ServiceHost para hospedar el servicio. Debe especificar el tipo que implementa el contrato de servicios y la dirección base. En este ejemplo, la dirección base es https://localhost:8000/ServiceModelSamples/Service y CalculatorService es el tipo que implementa el contrato de servicio.

  3. Agregue una instrucción try-catch que detecte una CommunicationException y agregue el código en los tres pasos siguientes al bloqueo de intentos. La cláusula catch debería mostrar un mensaje de error y, a continuación, llamar a selfHost.Abort().

  4. Agregue un extremo que exponga el servicio. Para ello, debe especificar el contrato que el extremo está exponiendo, un enlace y la dirección del extremo. Para obtener este ejemplo, especifique ICalculator como el contrato, WSHttpBinding como el enlace y CalculatorService como la dirección. Observe que la dirección del extremo es una dirección relativa. La dirección completa del extremo es la combinación de la dirección base y la dirección del extremo. En este caso la dirección completa es https://localhost:8000/ServiceModelSamples/Service/CalculatorService.

  5. Habilite el intercambio de metadatos. Para ello, agregue un comportamiento de metadatos de servicio. Primero, cree una instancia de ServiceMetadataBehavior, establezca la propiedad HttpGetEnabled en true y, a continuación, agregue el nuevo comportamiento al servicio. Para obtener más información acerca de los problemas de seguridad al publicar metadatos, vea Consideraciones de seguridad con metadatos.

  6. Abra el ServiceHost y espere a los mensajes entrantes. Cuando el usuario presione la tecla Entrar, cierre el ServiceHost.

Para comprobar si el servicio funciona

  1. Ejecute service.exe desde dentro de Visual Studio. Al ejecutarse en Windows Vista, el servicio se debe ejecutar con privilegios de administrador. Dado que Visual Studio se ejecutó con privilegios de administrador, service.exe también se ejecuta con dichos privilegios. También puede iniciar un nuevo símbolo del sistema con privilegios de administrador y ejecutar service.exe desde allí.

  2. Abra Internet Explorer y vaya a la página de depuración del servicio en https://localhost:8000/ServiceModelSamples/Service.

Ejemplo

El siguiente ejemplo incluye el contrato de servicios y la implementación de los pasos anteriores del tutorial y hospeda el servicio en una aplicación de consola. Compile lo siguiente en una aplicación ejecutable llamada Service.exe .

Asegúrese de hacer referencia a System.ServiceModel.dll al compilar el código.

Nota

Servicios como este requieren permiso para registrar las direcciones HTTP en el equipo para la realización de escuchas. Las cuentas de administrador tienen este permiso, pero las cuentas que no son de administrador deben obtener la concesión de permiso para espacios de nombre HTTP. Para obtener más información acerca de configuración de las reservas de espacios de nombres, vea Configuración de HTTP y HTTPS. Al ejecutarse en Visual Studio, the service.exe se debe ejecutar con privilegios de administrador.

Ahora, el servicio se está ejecutando. Continúe en Creación de un cliente de Windows Communication Foundation. Para obtener más información, consulte Solución de problemas con el tutorial de introducción.

Consulte también

Otros recursos

Getting Started Sample
Self-Host