Hospedaje de un servicio WCF en un aplicación administrada

Para hospedar un servicio dentro de una aplicación administrada, incruste el código del servicio dentro del código de la aplicación administrada, defina un extremo para el servicio de manera imperativa mediante código o de manera declarativa mediante configuración y, a continuación, cree una instancia de ServiceHost.

Para comenzar a recibir mensajes, llame al método Open en ServiceHost. Esto crea y abre el agente de escucha del servicio. Hospedar un servicio de esta manera se conoce a menudo como "autohospedaje", puesto que la aplicación administrada está haciendo el propio trabajo de hospedaje. Para cerrar el servicio, llame al método System.ServiceModel.Channels.CommunicationObject.Close en ServiceHost.

Un servicio también se puede hospedar en un servicio de Windows administrado, en Internet Information Services (IIS), o en Windows Process Activation Service (WAS). Para obtener más información acerca de opciones de hospedaje de un servicio, vea Servicios de hospedaje.

Hospedar un servicio en una aplicación administrada es la opción más flexible puesto que es la opción que menos infraestructura requiere que se implemente. Para obtener más información acerca de hospedaje de servicios en aplicaciones administradas, vea Hospedaje en una aplicación administrada.

El siguiente procedimiento muestra cómo implementar un servicio autohospedado en una aplicación de consola. Para obtener el ejemplo práctico sobre el que se basa este procedimiento , vea Self Host Sample.

Creación de un servicio autohospedado

  1. Defina un extremo de servicio para el servicio mediante configuración.

  2. Cree una interfaz para el servicio. Consulte Definición de un contrato de servicio de Windows Communication Foundation.

  3. Implemente la interfaz para crear el tipo de servicio. Consulte Cómo implementar un contrato de servicio de Windows Communication Foundation. En el siguiente ejemplo se llama a la implementación MathService.

  4. Cree un método para iniciar el servicio. En este ejemplo, se usa el método Main.

  5. Cree una instancia de la clase Uri con la dirección base del servicio. Este ejemplo utiliza la propiedad estática AppSettings de la clase ConfigurationManager para seleccionar una dirección base. Asegúrese de agregar una referencia a la System.Configuration.dll en su proyecto. A continuación, se puede establecer la dirección base en el archivo de configuración para la aplicación host bajo el elemento <appSettings>.

  6. Agregue un elemento <appSettings> en el archivo de configuración de la aplicación. A continuación, use el elemento <add> con un atributo key adecuado. En este caso, el valor de key coincide con el parámetro que se pasa a la propiedad AppSettings en el paso anterior.

  7. Cree una instancia de la clase ServiceHost, pasando un Type que representa el tipo de servicio y el Identificador uniforme de recursos (URI) de la dirección base al ServiceHost.

  8. Llame al método Open en el objeto ServiceHost.

Creación de un extremo mediante configuración

  1. Agregue un archivo de configuración al mismo directorio que el ensamblado del servicio. Para obtener más información acerca de configuración, vea Configuración de enlaces para servicios Windows Communication Foundation.

Ejemplo

El siguiente ejemplo crea un objeto ServiceHost para hospedar un servicio de tipo CalculatorService, y, a continuación, llama al método Open en ServiceHost. Se proporciona una dirección base mediante código, mientras que la ruta de acceso relativa se proporciona mediante configuración.

Para crear un cliente para el servicio utilizando la ServiceMetadata Utility Tool (svcutil.exe), el enlace del extremo debe utilizar el protocolo HTTP. Para obtener más información acerca de enlaces, vea Utilización de enlaces para configurar servicios y clientes y Enlaces proporcionados por el sistema. Para obtener el ejemplo completo en el que se basa este tema, vea el ejemplo Self-Host.

Consulte también

Tareas

Procedimiento para hospedar un servicio WCF en IIS
Definición de un contrato de servicio de Windows Communication Foundation
Cómo implementar un contrato de servicio de Windows Communication Foundation

Referencia

Uri
AppSettings
ConfigurationManager

Conceptos

Servicios de hospedaje
Utilización de enlaces para configurar servicios y clientes
Enlaces proporcionados por el sistema

Otros recursos

Self Host
Service Metadata Utility Tool (svcutil.exe)