Comportamento de depuração de serviço
O exemplo de ServiceDebug demonstra como as configurações de comportamento da depuração de serviço podem ser definidas. O exemplo baseia-se na Introdução, que implementa o contrato de serviço ICalculator
. Este exemplo define explicitamente o comportamento da depuração de serviço no arquivo de configuração. Ele também pode ser feito de maneira imperativa no 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).
Observação
O procedimento de instalação e as instruções de build desse exemplo estão no final deste tópico.
O arquivo Web.config para o servidor define o comportamento da depuração de 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 gerada pelo código do aplicativo mesmo que a exceção não seja declarada usando o FaultContractAttribute. Isso é feito pela definição de
includeExceptionDetailInFaults
comotrue
. Essa configuração é útil ao depurar casos em que o servidor gera uma exceção inesperada.Importante
Não é seguro ativar essa configuração em um ambiente de produção. Uma exceção inesperada do servidor pode ter algumas informações que não se destinam ao cliente e, portanto, a configuração de
includeExceptionDetailsInFaults
comotrue
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 o WSDL para o serviço. Isso pode ser habilitado definindo
httpHelpPageEnabled
comotrue
. É uma forma de a página de ajuda ser retornada a uma solicitação GET para o endereço básico do serviço. Você pode alterar esse endereço definindo outro atributohttpHelpPageUrl
. Torne isso seguro usando HTTPS em vez de HTTP. Isso pode ser feito pela definição dehttpsHelpPageEnabled
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) precisam dar certo. A última operação ("divide") falha com uma exceção de divisão por zero.
Para configurar, compilar, e executar o exemplo
Verifique se você executou o Procedimento de instalação única para os 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 a amostra em uma configuração de computador único ou entre computadores, siga as instruções contidas em Como executar as amostras do Windows Communication Foundation.