Contratos múltiples

Download sample

El ejemplo de contratos múltiples muestra cómo implementar más de un contrato en un servicio y cómo configurar los extremos para comunicarse con cada uno de los contratos implementados. Este ejemplo se basa en Ejemplo de introducción. El servicio se ha modificado para definir dos contratos: ICalculator y ICalculatorSession.

Nota

El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

La clase de servicio implementa los contratos ICalculatorSession e ICalculator. Dado que uno de los contratos requiere una sesión, el servicio utiliza el modo de instancia PerSession para mantener el estado en toda la duración de la sesión.

La configuración de servicio se ha modificado para definir dos extremos para exponer cada contrato. El extremo ICalculator se expone en la dirección base utilizando basicHttpBinding. El extremo ICalculatorSession se expone en la dirección base/sesión utilizando wsHttpBinding con el atributo bindingConfiguration establecido en BindingWithSession, tal y como se muestra en la configuración de ejemplo siguiente.

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
  <!-- ICalculator endpoint is exposed using BasicBinding at the base
       address provided by host: 
       https://localhost/servicemodelsamples/service.svc  -->
  <endpoint address=""
            binding="basicHttpBinding"
            contract="Microsoft.ServiceModel.Samples.ICalculator" />
  <!-- ICalculatorSession endpoint is exposed using BindingWithSession
       at {baseaddress}/session:
       https://localhost/servicemodelsamples/service.svc/session -->
  <endpoint address="session"
            binding="wsHttpBinding"
            bindingConfiguration="BindingWithSession" 
           contract="Microsoft.ServiceModel.Samples.ICalculatorSession" />
  ...
</service>

El código de cliente generado incluye ahora una clase de cliente para el contrato original ICalculator y el nuevo contrato ICalculatorSession. Se han modificado la configuración de cliente y el código para comunicarse con cada contrato en el extremo de servicio adecuado.

El cliente es una aplicación de consola de Windows (.exe). El servicio está hospedado por Internet Information Services (IIS).

La ventana de la consola del cliente muestra las operaciones enviadas a cada uno de los extremos, primero el extremo básico, seguido por el extremo seguro.

Para configurar, generar y ejecutar el ejemplo

  1. Asegúrese de que ha realizado el Procedimiento de instalación único para ejemplos de Windows Communication Foundation.

  2. Para generar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Generación de ejemplos de Windows Communication Foundation.

  3. Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Ejecución de ejemplos de Windows Communication Foundation.

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.