Enables debugging and help information features for a Windows Communication Foundation (WCF) service.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Use the properties from a configuration file or programmatically to enable the flow of managed exception information to the client for debugging purposes as well as the publication of HTML information files for users browsing the service in Web browsers.
Set the IncludeExceptionDetailInFaults property to true to instruct WCF to return managed exception information in SOAP faults to clients for debugging purposes.
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 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 one of the features using a configuration file:
Add to or create a <serviceBehaviors> section and add a <behavior> element to that with the name that matches the behaviorConfiguration attribute value from step 1. Endpoint behaviors are configured using an <endpointBehaviors> element; service behaviors are configured using a <serviceBehaviors> element.
For a specific example, see the Example section.
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, in addition to enabling metadata support. This configuration file shows the following basic steps to adding support for the features:
Because the type is an System.ServiceModel.Description.IServiceBehavior implementation, the <service> element that represents the service type has a behavior configuration identifier of behaviorConfiguration="metadataAndDebug".
Because the 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 the behaviorConfiguration attribute of the <service> element. In this case, the value is metadataAndDebug.
Add a <serviceDebug> element with the various attributes set to the desired configuration. In this case, the httpHelpPageEnabled and includeExceptionDetailInFaults attribute values are set to true.
<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>
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.