Comportamento de depuração de serviço
O exemplo ServiceDebug demonstra como as configurações de comportamento de depuração de serviço podem ser configuradas. O exemplo é baseado na Introdução, que implementa o ICalculator
contrato de serviço. Este exemplo define explicitamente o comportamento de depuração de serviço no arquivo de configuração. Também pode ser feito imperativamente em código.
Neste exemplo, o cliente é um aplicativo de console (.exe) e o serviço é hospedado pelo IIS (Serviços de Informações da Internet).
Nota
O procedimento de configuração e as instruções de compilação para este exemplo estão localizados no final deste tópico.
O arquivo Web.config para o servidor define o comportamento de depuração do serviço para habilitar a página de ajuda e o tratamento de exceções, conforme mostrado no exemplo a seguir.
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
<!-- Please set this to false when deploying -->
<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceDebug> é o elemento de configuração que permite alterar as propriedades do comportamento de depuração do serviço. O usuário pode modificar esse comportamento para obter o seguinte:
Isso permite que o serviço retorne qualquer exceção lançada pelo código do aplicativo, mesmo que a exceção não seja declarada usando o FaultContractAttribute. Isso é feito definindo
includeExceptionDetailInFaults
comotrue
. Essa configuração é útil ao depurar casos em que o servidor está lançando uma exceção inesperada.Importante
Não é seguro ativar essa configuração em um ambiente de produção. Uma exceção de servidor inesperada pode ter algumas informações que não se destinam ao cliente e, portanto, a configuração
includeExceptionDetailsInFaults
paratrue
pode resultar em um vazamento de informações.O <serviceDebug> também permite que um usuário habilite ou desabilite a página de ajuda. Cada serviço pode, opcionalmente, expor uma página de ajuda que contém informações sobre o serviço, incluindo o ponto de extremidade para obter WSDL para o serviço. Isso pode ser ativado definindo
httpHelpPageEnabled
comotrue
. Isso permite que a página de ajuda seja retornada para uma solicitação GET para o endereço base do serviço. Você pode alterar esse endereço definindo outro atributohttpHelpPageUrl
. Você pode tornar isso seguro usando HTTPS em vez de HTTP. Isso pode ser feito definindohttpsHelpPageEnabled
ehttpsHelpPageUrl
.
Quando você executa o exemplo, as solicitações de operação e as respostas são exibidas na janela do console do cliente. As três primeiras operações (Adicionar, Subtrair e Multiplicar) devem ser bem-sucedidas. A última operação ("dividir") falha com uma divisão por exceção zero.
Para configurar, compilar e executar o exemplo
Certifique-se de ter executado o procedimento de instalação única 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.