Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O exemplo Padrão demonstra como as configurações de comportamento de serviço podem ser configuradas. O exemplo é baseado no Guia de Início, que implementa o contrato de serviço ICalculator. Este exemplo define explicitamente comportamentos de serviço e comportamentos de operação usando os ServiceBehaviorAttribute atributos e OperationBehaviorAttribute . Você pode configurar comportamentos em arquivos de configuração ou imperativamente em código (como este exemplo demonstra).
Neste exemplo, o cliente é um aplicativo de console (.exe) e o serviço é hospedado pelo IIS (Serviços de Informações da Internet).
Observação
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 especifica comportamentos com o ServiceBehaviorAttribute e o OperationBehaviorAttribute como mostrado no exemplo de código a seguir. Todos os valores especificados são os padrões.
[ServiceBehavior(
AutomaticSessionShutdown=true,
ConcurrencyMode=ConcurrencyMode.Single,
InstanceContextMode=InstanceContextMode.PerSession,
IncludeExceptionDetailInFaults=false,
UseSynchronizationContext=true,
ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
[OperationBehavior(
TransactionAutoComplete=true,
TransactionScopeRequired=false,
Impersonation=ImpersonationOption.NotAllowed)]
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(1600);
return n1 + n2;
}
...
}
Os comportamentos de serviço são especificados com o ServiceBehaviorAttribute atributo. A tabela a seguir descreve alguns desses comportamentos.
| Comportamento do serviço | Descrição |
|---|---|
| AutomaticSessionShutdown | Desliga automaticamente uma sessão a pedido do cliente. |
| ConcurrencyMode | Especifica o modo de simultaneidade para cada instância de serviço. |
| InstanceContextMode | Especifica o modo de contexto da instância. |
| UseSynchronizationContext | Determina se o contexto de sincronização fornecido deve ser usado, se estiver definido. Use isso quando quiser controlar se deseja usar um WindowsFormsSynchronizationContext em aplicativos do Windows Forms. |
| IncludeExceptionDetailInFaults | Determina se as exceções gerais de execução não tratadas devem ser convertidas em uma Fault<string> mensagem de falha e enviadas como uma mensagem de falha. |
| TransactionIsolationLevel | Especifica o nível de isolamento para transações. |
| ValidateMustUnderstand | Determina se cabeçalhos de mensagens inesperadas causam uma condição de erro. |
Os comportamentos de operação são especificados usando o OperationBehaviorAttribute atributo . A tabela a seguir descreve alguns desses comportamentos.
| Comportamento da operação | Descrição |
|---|---|
| TransactionAutoComplete | Determina se a conclusão da operação de serviço confirma a transação atual. |
| TransactionScopeRequired | Determina se a operação de serviço participa numa transação gerida pelo cliente. |
| Impersonation | Determina se a operação do serviço impessoa a identidade do chamador. |
| ReleaseInstanceMode | Determina se as instâncias de serviço são reutilizadas no início ou no final da chamada de operação de serviço. |
Quando você executa o exemplo, as solicitações de operação e as respostas são exibidas na janela do console do cliente. O atraso entre as chamadas é o resultado das chamadas feitas System.Threading.Thread.Sleep() nas operações de atendimento. O restante das amostras de comportamento explica esses comportamentos com mais detalhes. Pressione ENTER na janela do cliente para desligar o cliente.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Para configurar, compilar e executar o exemplo
Verifique se você executou o procedimento de instalação do One-Time para os exemplos do Windows Communication Foundation.
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.
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.