Compartir a través de


Contratos múltiples

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.

ms751424.note(es-es,VS.100).gifNota:
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, compilar y ejecutar el ejemplo

  1. Asegúrese de realizar los Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

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

  3. Para ejecutar el ejemplo en una configuración con un único equipo o con varios, siga las instrucciones de Running the Windows Communication Foundation Samples.

ms751424.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>:\WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\MultipleContracts