CallbackDebugBehavior.IncludeExceptionDetailInFaults Property

Definition

Gets or sets a value that controls whether client callback objects return managed exception information in SOAP faults back to the service.

public:
 property bool IncludeExceptionDetailInFaults { bool get(); void set(bool value); };
public bool IncludeExceptionDetailInFaults { get; set; }
member this.IncludeExceptionDetailInFaults : bool with get, set
Public Property IncludeExceptionDetailInFaults As Boolean

Property Value

true if WCF returns managed client callback exception information in the SOAP faults for service debugging purposes in duplex communication; otherwise, false. The default is false.

Examples

The following code example shows a client configuration file that instructs WCF to return managed exception information from a client callback object in SOAP messages.

  <client>
      <endpoint 
        address="http://localhost:8080/DuplexHello" 
        binding="wsDualHttpBinding"
        bindingConfiguration="WSDualHttpBinding_SampleDuplexHello"
        contract="SampleDuplexHello" 
        name="WSDualHttpBinding_SampleDuplexHello"
        behaviorConfiguration="enableCallbackDebug">
      </endpoint>
  </client>
<behaviors>
  <endpointBehaviors>
    <behavior name="enableCallbackDebug">
      <callbackDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </endpointBehaviors>
</behaviors>

Remarks

Set the IncludeExceptionDetailInFaults property to true from an application configuration file or programmatically to enable the flow of managed exception information in a client callback object back to the service for debugging purposes.

Caution

Returning managed exception information to services can be a security risk because exception details expose information about the internal client implementation that could be used by unauthorized services. In addition, although the CallbackDebugBehavior properties can also be set programmatically, it can be easy to forget to disable IncludeExceptionDetailInFaults when deploying.

Because of the security issues involved, it is strongly recommended that:

  • You use an application configuration file to set the value of the IncludeExceptionDetailInFaults property to true.

  • You only do so only in controlled debugging scenarios.

For more information about the security issues related to managed exception information, see Specifying and Handling Faults in Contracts and Services.

To enable or disable a feature of CallbackDebugBehavior using a configuration file

  1. Add a behaviorConfiguration attribute to the client <endpoint> element for your WCF client application. The CallbackDebugBehavior behavior is an endpoint behavior. Endpoint behaviors are configured on <endpoint> elements; service behaviors are configured on <service> elements.

  2. Add to or create an <endpointBehaviors> section and add a <behavior> element to that with the name that matches the behaviorConfiguration attribute value from step 1. Endpoint behaviors are added for use in a client <endpoint> element using an <endpointBehaviors> element.

  3. Add a <callbackDebug> element to the <behavior> element from step 2 and enable or disable the various properties appropriate to your scenario.

For a specific example, see the Example section. You can also set the values of this attribute by using the <callbackDebug> element in a client application configuration file.

Applies to