Partilhar via


Contratos múltiplos

O exemplo MultipleContracts demonstra como implementar mais de um contrato em um serviço e como configurar pontos de extremidade para comunicação com cada um dos contratos implementados. Este exemplo é baseado em Introdução. O serviço foi modificado para definir dois contratos, o ICalculator contrato e o ICalculatorSession contrato.

Nota

O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.

A classe de serviço implementa o ICalculator e ICalculatorSession contratos. Como um dos contratos requer uma sessão, o serviço usa o PerSession modo de instância para manter o estado durante o tempo de vida da sessão.

A configuração do serviço foi modificada para definir dois pontos de extremidade para expor cada contrato. O ICalculator ponto de extremidade é exposto no endereço base usando um basicHttpBindingarquivo . O ICalculatorSession ponto de extremidade é exposto no baseaddress/session usando um wsHttpBinding com o bindingConfiguration atributo definido como BindingWithSession, conforme mostrado na configuração de exemplo a seguir.

<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>

O código de cliente gerado agora inclui uma classe de cliente para o contrato original ICalculator e o novo ICalculatorSession contrato. A configuração e o código do cliente foram modificados para se comunicar com cada contrato no ponto de extremidade de serviço apropriado.

O cliente é um aplicativo de console do Windows (.exe). O serviço é hospedado pelo Internet Information Services (IIS).

A janela do console do cliente exibe as operações enviadas para cada um dos pontos de extremidade, primeiro o ponto de extremidade básico, seguido pelo ponto de extremidade seguro.

Para configurar, compilar e executar o exemplo

  1. Certifique-se de ter executado o procedimento de instalação única para os exemplos do Windows Communication Foundation.

  2. Para criar a edição C# ou Visual Basic .NET da solução, siga as instruções em Criando os exemplos do Windows Communication Foundation.

  3. Para executar o exemplo em uma configuração de máquina única ou cruzada, siga as instruções em Executando os exemplos do Windows Communication Foundation.