<serviceDebug>

Especifica recursos de depuração e de informações de ajuda para um serviço do WCF (Windows Communication Foundation).

<configuração>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceDebug>

Syntax

<serviceDebug httpHelpPageBinding="String"
              httpHelpPageBindingConfiguration="String"
              httpHelpPageEnabled="Boolean"
              httpHelpPageUrl="Uri"
              httpsHelpPageBinding="String"
              httpsHelpPageBindingConfiguration="String"
              httpsHelpPageEnabled="Boolean"
              httpsHelpPageUrl="Uri"
              includeExceptionDetailInFaults="Boolean" />

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
httpHelpPageBinding Um valor de cadeia de caracteres que especifica o tipo de associação a ser usado quando HTTP é utilizado para acessar a página de Ajuda do serviço.

Somente serão suportadas associações com elementos de associação interna compatíveis com System.ServiceModel.Channels.IReplyChannel. Além disso, a propriedade System.ServiceModel.Channels.MessageVersion da associação deve ser MessageVersion.None.
httpHelpPageBindingConfiguration Uma cadeia de caracteres que define o nome da associação especificada no atributo httpHelpPageBinding, que faz referência às informações de configuração adicionais dessa associação. O mesmo nome deve ser definido na seção <bindings>.
httpHelpPageEnabled Um valor booliano que controla se o WCF publica uma página de ajuda HTML no endereço especificado pelo atributo httpHelpPageUrl. O padrão é true.

Você pode definir essa propriedade como false desabilitar a publicação de uma página de ajuda HTML visível em navegadores HTML.

Para garantir que a página de ajuda HTML seja publicada no local controlado pelo atributo httpHelpPageUrl, defina esse atributo como true. Além disso, uma das seguintes condições também deve ser atendida:

– O atributo httpHelpPageUrl é um endereço absoluto que dá suporte ao esquema de protocolo HTTP.
– Há um endereço básico do serviço que dá suporte ao esquema de protocolo HTTP.

Embora uma exceção seja gerada quando um endereço absoluto que não dá suporte ao esquema de protocolo HTTP é atribuído ao atributo httpHelpPageUrl, qualquer outro cenário no qual nenhum dos critérios anteriores é atendido resulta em nenhuma exceção e nenhuma página de ajuda HTML.
httpHelpPageUrl Um URI que especifica a URL relativa ou absoluta baseada em HTTP do arquivo de ajuda HTML personalizado que o usuário vê quando o ponto de extremidade é exibido usando um navegador HTML.

Você pode usar esse atributo para habilitar o uso de um arquivo de ajuda HTML personalizado retornado por uma solicitação HTTP/Get; por exemplo, por um navegador HTML. A localização do arquivo de ajuda HTML é resolvida da seguinte maneira:

1. Se o valor desse atributo for um endereço relativo, a localização do arquivo de ajuda HTML será o valor do endereço básico do serviço que dá suporte a solicitações HTTP, além desse valor da propriedade.
2. Se o valor desse atributo for um endereço absoluto e der suporte a solicitações HTTP, a localização do arquivo de ajuda HTML será o valor dessa propriedade.
3. Se o valor desse atributo for absoluto, mas não der suporte a solicitações HTTP, uma exceção será gerada.

Esse atributo é válido somente quando o atributo httpHelpPageEnabled é true.
httpsHelpPageBinding Um valor de cadeia de caracteres que especifica o tipo de associação a ser usado quando HTTPS é utilizado para acessar a página de ajuda do serviço.

Somente serão suportadas associações com elementos de associação interna compatíveis com IReplyChannel. Além disso, a propriedade System.ServiceModel.Channels.MessageVersion da associação deve ser MessageVersion.None.
httpsHelpPageBindingConfiguration Uma cadeia de caracteres que define o nome da associação especificada no atributo httpsHelpPageBinding, que faz referência às informações de configuração adicionais dessa associação. O mesmo nome deve ser definido na seção <bindings>.
httpsHelpPageEnabled Um valor booliano que controla se o WCF publica uma página de ajuda HTML no endereço especificado pelo atributo httpsHelpPageUrl. O padrão é true.

Você pode definir essa propriedade como false desabilitar a publicação de uma página de ajuda HTML visível em navegadores HTML.

Para garantir que a página de ajuda HTML seja publicada no local controlado pelo atributo httpsHelpPageUrl, defina esse atributo como true. Além disso, uma das seguintes condições também deve ser atendida:

– O atributo httpsHelpPageUrl é um endereço absoluto que dá suporte ao esquema de protocolo HTTPS.
– Há um endereço básico do serviço que dá suporte ao esquema de protocolo HTTPS.

Embora uma exceção seja gerada quando um endereço absoluto que não dá suporte ao esquema de protocolo HTTPS é atribuído ao atributo httpsHelpPageUrl, qualquer outro cenário no qual nenhum dos critérios anteriores é atendido resulta em nenhuma exceção e nenhuma página de ajuda HTML.
httpsHelpPageUrl Um URI que especifica a URL relativa ou absoluta baseada em HTTPS do arquivo de ajuda HTML personalizado que o usuário vê quando o ponto de extremidade é exibido usando um navegador HTML.

Você pode usar esse atributo para habilitar o uso de um arquivo de ajuda HTML personalizado retornado por uma solicitação HTTPS/Get; por exemplo, por um navegador HTML. A localização do arquivo de ajuda HTML é resolvida da seguinte maneira:

– Se o valor dessa propriedade for um endereço relativo, a localização do arquivo de ajuda HTML será o valor do endereço básico do serviço que dá suporte a solicitações HTTPS, além desse valor da propriedade.
– Se o valor dessa propriedade for um endereço absoluto e der suporte a solicitações HTTPS, a localização do arquivo de ajuda HTML será o valor dessa propriedade.
– Se o valor dessa propriedade for absoluto, mas não der suporte a solicitações HTTPS, uma exceção será gerada.

Esse atributo é válido somente quando o atributo httpHelpPageEnabled é true.
includeExceptionDetailInFaults Um valor que especifica se são incluídas informações de exceção gerenciada no detalhe de falhas SOAP retornadas para o cliente para fins de depuração. O padrão é false.

Se você definir esse atributo como true, poderá habilitar o fluxo de informações de exceção gerenciada para o cliente para fins de depuração, bem como a publicação de arquivos de informações HTML para usuários que navegam pelo serviço em navegadores da Web. Cuidado: retornar informações de exceção gerenciada aos clientes pode ser um risco para a segurança. Isso ocorre porque os detalhes da exceção expõem informações sobre a implementação interna do serviço que podem ser usadas por clientes não autorizados.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<behavior> Especifica um elemento de comportamento.

Comentários

A configuração de includeExceptionDetailInFaults como true 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 FaultContractAttribute. Essa configuração é útil ao depurar casos em que o servidor está lançando uma exceção inesperada. Com o uso desse atributo, uma forma serializada da exceção desconhecida é retornada e você pode examinar mais detalhes da exceção.

Cuidado

Retornar informações de exceção gerenciada aos clientes pode ser um risco para a segurança, pois os detalhes da exceção expõem informações sobre a implementação interna do serviço que podem ser usadas por clientes não autorizados. Devido aos problemas de segurança envolvidos, é extremamente recomendável que você faça isso apenas em cenários de depuração controlada. Você deve definir includeExceptionDetailInFaults como false ao implantar seu aplicativo.

Para obter detalhes sobre os problemas de segurança relacionados à exceção gerenciada, confira Especificando e tratando falhas em contratos e serviços. Para obter um exemplo de código, confira Comportamento de depuração de serviço.

Você também pode definir httpsHelpPageEnabled e httpsHelpPageUrl para habilitar ou desabilitar a página de ajuda. Cada serviço pode, opcionalmente, expor uma página de ajuda com informações sobre o serviço, incluindo o ponto de extremidade para obter o WSDL do serviço. Isso pode ser habilitado definindo httpHelpPageEnabled como true. É uma maneira 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 o atributo httpHelpPageUrl. Além disso, você pode tornar isso seguro usando HTTPS, em vez de HTTP.

Os atributos opcionais httpHelpPageBinding e httpHelpPageBinding permitem que você configure as associações usadas para acessar a página da Web do serviço. Se elas não forem especificadas, as associações padrão (HttpTransportBindingElement, no caso de HTTP, e HttpsTransportBindingElement, no caso de HTTPS) serão usadas para acesso à página de ajuda do serviço, conforme apropriado. Você não pode usar esses atributos com as associações internas do WCF. Somente associações com elementos de associação interna compatíveis com xref:System.ServiceModel.Channels.IReplyChannel> terão suporte. Além disso, a propriedade System.ServiceModel.Channels.MessageVersion da associação deve ser MessageVersion.None.

Confira também