Contratos múltiples
El ejemplo MultipleContracts muestra cómo implementar más de un contrato en un servicio y cómo configurar puntos de conexión para comunicarse con cada uno de los contratos implementados. Este ejemplo se basa en el ejemplo 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 ICalculator
e ICalculatorSession
. 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:
http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- ICalculatorSession endpoint is exposed using BindingWithSession
at {baseaddress}/session:
http://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 puntos de conexión, primero el punto de conexión básico, seguido por el punto de conexión seguro.
Configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.
Para ejecutar el ejemplo en una configuración de una sola máquina o de varias máquinas, siga las instrucciones que se indican en Ejecución de los ejemplos de Windows Communication Foundation.