ServiceDebugBehavior.IncludeExceptionDetailInFaults Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a value that specifies whether to include managed exception information in the detail of SOAP faults returned to the client for debugging purposes.
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 Windows Communication Foundation (WCF) returns managed exception information in the SOAP faults for client debugging purposes; otherwise, false
. The default is false
.
Examples
The following code example shows how to use a configuration file to enable the HTML help page feature and return exception information inside a SOAP fault back to the client for debugging purposes. This configuration file shows the following basic steps to adding support for the ServiceDebugBehavior features:
Because the ServiceDebugBehavior type is an System.ServiceModel.Description.IServiceBehavior implementation, the <service> element that represents the service type has a behavior configuration identifier of
behaviorConfiguration="metadataAndDebug"
.Again, because the ServiceDebugBehavior type is an System.ServiceModel.Description.IServiceBehavior implementation a <behavior> element is added to a <serviceBehaviors> section. Set the
name
attribute of the <behavior> element the value of which is the identifier of thebehaviorConfiguration
attribute of the <service> element. In this case, the value ismetadataAndDebug
.Add a <serviceDebug> element with the various attributes set to the desired configuration. In this case, the
httpHelpPageEnabled
andincludeExceptionDetailInFaults
attribute values are set totrue
.
<configuration>
<system.serviceModel>
<services>
<!--
Step 1. Add a behaviorConfiguration attribute
in the <service> element.
-->
<service
name="Microsoft.WCF.Documentation.SampleService"
behaviorConfiguration="metadataAndDebug">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/SampleService" />
</baseAddresses>
</host>
<endpoint
address=""
binding="wsHttpBinding"
contract="Microsoft.WCF.Documentation.ISampleService"
/>
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<!--
Step 2. Inside a <serviceBehaviors> section, add
a name attribute in the <behaviors> element that
matches the behaviorConfiguration attribute in the
<service> element above.
-->
<behavior name="metadataAndDebug">
<serviceMetadata
httpGetEnabled="true"
httpGetUrl=""
/>
<!--
Step 3. Add a <serviceDebug> element and
modify the various attributes that suit your
scenario.
-->
<serviceDebug
httpHelpPageEnabled="true"
includeExceptionDetailInFaults="true"
/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Remarks
Set the IncludeExceptionDetailInFaults property to true
to instruct WCF to return managed exception information to the client in SOAP faults to ease debugging.
Caution
Returning managed exception information to clients can be a security risk because exception details expose information about the internal service implementation that could be used by unauthorized clients. In addition, although the ServiceDebugBehavior 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, see Specifying and Handling Faults in Contracts and Services.