Procedimiento para hospedar un servicio WCF en WAS

Este tema describe los pasos básicos requeridos para crear un servicio de Windows Communication Foundation (WCF) hospedado de Windows Process Activation Services (también conocido como WAS). WAS es el nuevo servicio de activación de procesos que es una generalización de las características de Internet Information Services (IIS) que funcionan con protocolos de transporte que no son HTTP. WCF utiliza la interfaz de adaptador de agentes de escucha para comunicar solicitudes de activación que se reciben a través de protocolos que no son HTTP, admitidos por WCF, como, por ejemplo, TCP, canalizaciones con nombre y Message Queue Server.

Esta opción de hospedaje requiere que los componentes de activación WAS se instalen y configuren correctamente, pero no requiere que se escriba ningún código de hospedaje como parte de la aplicación. Para obtener más información acerca de instalación y configuración de WAS, vea Cómo instalar y configurar los componentes de activación de WFC.

Cuando un servicio de WCF se hospeda en WAS, los enlaces estándar se utilizan de la manera habitual. Sin embargo, al utilizar NetTcpBinding y NetNamedPipeBinding para configurar un servicio hospedado en WAS, se debe satisfacer una restricción. Cuando extremos diferentes utilizan el mismo transporte, las configuraciones del enlace tienen que coincidir en las siete propiedades siguientes:

  • ConnectionBufferSize
  • ChannelInitializationTimeout
  • MaxPendingConnections
  • MaxOutputDelay
  • MaxPendingAccepts
  • ConnectionPoolSettings.IdleTimeout
  • ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint

De lo contrario, el extremo que se inicializa primero siempre determina los valores de estas propiedades y los extremos agregados después producen una ServiceActivationException si no coinciden con esos valores.

Para ver la copia del origen de este ejemplo, consulte TCP Activation.

Creación de un servicio básico hospedado por WAS

  1. Defina un contrato de servicios para el tipo de servicio.

  2. Implemente el contrato de servicios en una clase de servicio. Observe que la información de enlace o dirección no se especifica en ninguna parte de la implementación del servicio. Además, el código tiene que escribirse para recuperar esa información del archivo de configuración.

  3. Cree un archivo Web.config para configurar un extremo para CalculatorService que utiliza NetTcpBinding.

  4. Cree un archivo Service.svc que contenga la línea:

    <%@ServiceHost language=c# Service="CalculatorService" %> 
    
  5. Coloque el archivo Service.svc en su directorio virtual de IIS.

Creación de un cliente para que utilice el servicio

  1. Utilice la ServiceModel Metadata Utility Tool (Svcutil.exe) desde la línea de comandos para generar código a partir de los metadatos del servicio.

    Svcutil.exe <service's Metadata Exchange (MEX) address or HTTP GET address> 
    
  2. El cliente que se genera contiene la interfaz ICalculator que define el contrato de servicios que la implementación del cliente debe cumplir.

  3. La aplicación de cliente generada también contiene la implementación de ClientCalculator. Observe que la información de enlace y dirección no se especifica en ninguna parte de la implementación del servicio. Además, el código tiene que escribirse para recuperar esa información del archivo de configuración.

  4. Svcutil.exe también genera la configuración del cliente que utiliza el NetTcpBinding. Este archivo se debería nombrar en el archivo App.config al utilizar Visual Studio.

  5. Cree una instancia de ClientCalculator en una aplicación y, a continuación, llame a las operaciones del servicio.

  6. Compile y ejecute el cliente.

Consulte también

Otros recursos

TCP Activation