Host de servicio WCF (WcfSvcHost.exe)

El host de servicio de Windows Communication Foundation (WCF)(WcfSvcHost.exe) permite iniciar el depurador (F5) de Visual Studio para hospedar y probar automáticamente un servicio implementado. Después, puede probar el servicio utilizando el Cliente de prueba WCF (WcfTestClient.exe), o su propio cliente, para buscar y corregir cualquier error potencial.

Host de servicio de WCF

Host de servicio WCF enumera los servicios de un proyecto de servicio WCF, carga la configuración del proyecto y crea una instancia de un host por cada servicio que encuentra. La herramienta se integra en Visual Studio a través de la plantilla Servicio WCF y se invoca al iniciar la depuración de un proyecto.

Utilizando el Host de servicio WCF, puede hospedar un servicio WCF (en un proyecto de biblioteca de servicio WCF) sin escribir código adicional ni confirmar cambios en un host concreto durante el desarrollo.

Nota

El Host de servicio WCF no admite la confianza parcial. Si desea usar un servicio WCF con confianza parcial, no use la plantilla de proyecto de biblioteca de servicio WCF en Visual Studio para compilar el servicio. En su lugar, cree un nuevo sitio web en Visual Studio. Para ello, elija la plantilla de sitio web de servicio WCF, que puede hospedar el servicio en un servidor web en el que se admita la confianza parcial de WCF.

Tipos de proyecto hospedados por el host de servicio de WCF

El Host de servicio WCF puede hospedar los siguientes tipos de proyecto de biblioteca de servicio WCF: biblioteca de servicio WCF, biblioteca de servicio de flujo de trabajo secuencial, biblioteca de servicio de flujo de trabajo de máquina de estados y biblioteca de servicio de redifusión. El Host de servicio WCF también puede hospedar los servicios que se pueden agregar a un proyecto de biblioteca de servicio utilizando la funcionalidad Agregar elemento. Esto incluye: servicio WCF, servicio de flujo de trabajo de máquina de estados, servicio de flujo de trabajo secuencial, servicio de flujo de trabajo de máquina de estados XAML y servicio de flujo de trabajo secuencial XAML.

Debería tener en cuenta, sin embargo, que la herramienta no le ayudará a configurar un host. Para esta tarea debe modificar manualmente el archivo App.config. La herramienta tampoco valida los archivos de configuración definidos por el usuario.

Precaución

No debe utilizar el Host de servicio WCF para hospedar servicios en un entorno de producción, ya que no fue diseñado para este fin. El Host de servicio WCF no admite los requisitos de confiabilidad, seguridad y manejabilidad de este tipo de entorno. En su lugar, utilice IIS porque que proporciona confiabilidad y características de supervisión superiores, y es la solución preferida para hospedar servicios. Cuando haya completado el desarrollo de los servicios, debe trasladarlos del Host de servicio WCF a IIS.

Escenarios para usar el host de servicio de WCF dentro de Visual Studio

La tabla siguiente ofrece una lista de todos los parámetros del cuadro de diálogo Argumentos de la línea de comandos. Para acceder a este cuadro de diálogo, haga clic con el botón derecho en un proyecto en el Explorador de soluciones de Visual Studio, seleccione Propiedades, elija la pestaña Depurar y haga clic en Iniciar proyecto. Estos parámetros son útiles para configurar el Host de servicio WCF.

Parámetro Significado
/client Un parámetro opcional que especifica la ruta de acceso a un ejecutable que se ejecutará una vez hospedados los servicios. Esto inicia el Cliente de prueba WCF después del hospedaje.
/clientArg Especifique una cadena como un argumento que se pasa a la aplicación cliente personalizada.
/? Muestra el texto de ayuda.

Utilizar el cliente de prueba de WCF

Después de crear un nuevo proyecto de servicio WCF y presionar F5 para iniciar el depurador, el Host de servicio WCF inicia el hospedaje de todos los servicios que encuentra en el proyecto. El Cliente de prueba WCF se abre automáticamente y muestra una lista de puntos de conexión del servicio definidos en el archivo de configuración. Desde la ventana principal puede probar los parámetros e invocar el servicio.

Para asegurarse de que se usa el Cliente de prueba WCF, haga clic con el botón derecho en el proyecto en el Explorador de soluciones de Visual Studio, seleccione Propiedades, elija la pestaña Depurar y haga clic en Iniciar proyecto. Asegúrese de que aparece lo siguiente en el cuadro de diálogo Argumentos de la línea de comandos.

/client:WcfTestClient.exe

Utilizar un cliente personalizado

Para usar un cliente personalizado, haga clic con el botón derecho en el proyecto en el Explorador de soluciones de Visual Studio, seleccione Propiedades, elija la pestaña Depurar, haga clic en Iniciar proyecto y edite el parámetro /client del cuadro de diálogo Argumentos de la línea de comandos para que apunte al cliente personalizado, como se indica en el siguiente ejemplo.

/client:"path/CustomClient.exe"

Al presionar F5 para iniciar de nuevo el servicio, el Host de servicio WCF inicia automáticamente el cliente personalizado cuando inicia el depurador.

También puede utilizar el parámetro /clientArg: para especificar una cadena como argumento que se pasa a la aplicación cliente personalizada, como se indica en el ejemplo siguiente.

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

Por ejemplo, si está usando la plantilla de la Biblioteca de servicios de distribución, puede usar los argumentos de línea de comandos siguientes:

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Especificación de ningún cliente

Para especificar que no se use ningún cliente después del hospedaje de servicios WCF, haga clic con el botón derecho en el proyecto en el Explorador de soluciones de Visual Studio, seleccione Propiedades, elija la pestaña Depurar, haga clic en Iniciar proyecto y deje en blanco el cuadro de diálogo Argumentos de la línea de comandos.

Utilizar un host personalizado

Para usar un host personalizado, haga clic con el botón derecho en el proyecto en el Explorador de soluciones de Visual Studio, seleccione Propiedades, elija la pestaña Depurar, haga clic en Iniciar programa externo y escriba la ruta de acceso completa al host personalizado. También puede utilizar el cuadro de diálogo Argumentos de la línea de comandos para especificar argumentos que se deban pasar al host.

Interfaz de usuario del host de servicio de WCF

Al invocar inicialmente el Host de servicio WCF (presionando F5 en Visual Studio), se abre automáticamente la ventana del Host de servicio WCF. Cuando se está ejecutando el Host de servicio WCF, aparece el icono del programa en el área de notificación. Haga doble clic en el icono para abrir la ventana del Host de servicio WCF

Cuando se producen errores durante el hospedaje de servicios, se abre el cuadro de diálogo Host de servicio WCF para mostrar la información pertinente.

La ventana principal del Host de servicio WCF contiene dos menús:

  • Archivo: contiene los comandos Cerrar y Salir. Al hacer clic en Cerrar, se cierra el cuadro de diálogo Host de servicio WCF, pero se siguen hospedando los servicios. Al hacer clic en Salir, también se apaga el Host de servicio WCF. Esto también detiene todos los servicios hospedados.

  • Ayuda: contiene el comando Acerca de, que ofrece información de la versión. También contiene el comando Ayuda, que puede abrir un archivo de ayuda.

La ventana principal del Host de servicio WCF contiene dos áreas:

  • La primera área es Servicio. Contiene una lista que muestra información básica de todos los servicios. La información incluye:

    • Servicio: muestra una lista de todos los servicios.

    • Estado: muestra el estado del servicio. Los valores válidos son "Iniciado", "Detenido" y "Error".

    • Dirección de metadatos: muestra la dirección de los metadatos de los servicios.

  • La segunda área es Información adicional. Muestra una explicación detallada del estado de un servicio cuando se selecciona la línea de ese servicio en el área Servicio. Si el estado es Error, puede ver el mensaje de error completo en la pantalla.

Detener el host de servicio de WCF

Puede cerrar el Host de servicio WCF de las cuatro maneras siguientes:

  • Detener la sesión de depuración en Visual Studio.

  • Seleccionar Salir en el menú Archivo de la ventana del Host de servicio WCF.

  • Seleccionar Salir en el menú contextual del icono de la bandeja del Host de servicio WCF en el área de notificación de sistema.

  • Salir del Cliente de prueba WCF si lo está utilizando.

Uso del host de servicio sin privilegios de administrador

Para permitir que los usuarios sin privilegios de administrador desarrollen servicios WCF, se crea una lista de control de acceso (ACL) para el espacio de nombres "http://+:8731/Design_Time_Addresses" durante la instalación de Visual Studio. La ACL se establece en la interfaz de usuario (UI), en la que se incluyen todos los usuarios interactivos que iniciaron sesión en el equipo. Los administradores pueden agregar o quitar usuarios de esta lista ACL o abrir puertos adicionales. Esta lista ACL permite a los usuarios utilizar el host automático de servicios WCF (wcfSvcHost.exe) sin concederles privilegios de administrador.

Puede modificar el acceso con la herramienta netsh.exe en Windows Vista, usando la cuenta de administrador con privilegios elevados. El siguiente ejemplo muestra la utilización de netsh.exe.

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Para obtener más información sobre netsh.exe, consulte "Uso de Netsh.exe".

Consulte también