Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O exemplo padrão demonstra como as configurações de comportamento do serviço podem ser configuradas. O exemplo é baseado no Guia de Início, que implementa o ICalculator contrato de serviço. Este exemplo define explicitamente comportamentos de serviço e comportamentos de operação usando os atributos ServiceBehaviorAttribute e OperationBehaviorAttribute. Você pode configurar comportamentos em arquivos de configuração ou de forma imperativa no código (como este exemplo demonstra).
Nesta amostra, o cliente é um aplicativo de console (.exe) e o serviço é hospedado pelos Serviços de Informações da Internet (IIS).
Observação
O procedimento de instalação e as instruções de build para este exemplo estão localizados no final deste tópico.
A classe de serviço especifica comportamentos com o ServiceBehaviorAttribute e o OperationBehaviorAttribute, conforme 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 um for definido. Use isso quando quiser controlar se deseja usar um WindowsFormsSynchronizationContext em aplicativos do Windows Forms. |
| IncludeExceptionDetailInFaults | Determina se exceções gerais de execução sem tratamento devem ser convertidas em um Fault<string> e enviadas como uma mensagem de falha. |
| TransactionIsolationLevel | Especifica o nível de isolamento das transações. |
| ValidateMustUnderstand | Determina se cabeçalhos de mensagem inesperados 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 é inserida em uma transação com fluxo de cliente. |
| Impersonation | Determina se a operação de serviço representa a identidade do chamador. |
| ReleaseInstanceMode | Determina se as instâncias de serviço são recicladas no início ou no final da chamada de operação de serviço. |
Quando você executa o exemplo, as solicitações e respostas da operação são exibidas na janela do console do cliente. O atraso entre as chamadas é o resultado das chamadas para System.Threading.Thread.Sleep() feitas nas operações de serviço. O restante dos exemplos 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 avulsa dos exemplos do Windows Communication Foundation.
Para compilar a edição .NET do C# ou do Visual Basic da solução, siga as instruções contidas em Como Compilar as Amostras do Windows Communication Foundation.
Para executar o exemplo em uma configuração única ou entre máquinas, siga as instruções em Executando os exemplos do Windows Communication Foundation.