ServiceDebugBehavior Class
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.
Enables debugging and help information features for a Windows Communication Foundation (WCF) service.
public ref class ServiceDebugBehavior : System::ServiceModel::Description::IServiceBehavior
public class ServiceDebugBehavior : System.ServiceModel.Description.IServiceBehavior
type ServiceDebugBehavior = class
interface IServiceBehavior
Public Class ServiceDebugBehavior
Implements IServiceBehavior
- Inheritance
-
ServiceDebugBehavior
- Implements
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, in addition to enabling metadata support. 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"
.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
Use the ServiceDebugBehavior 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.
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 about the security issues related to managed exception information, see Specifying and Handling Faults in Contracts and Services.
The HttpHelpPageEnabled and HttpsHelpPageEnabled properties instruct the service to publish HTML help files when the service is viewed using an HTML browser.
The HttpHelpPageUrl and HttpsHelpPageUrl properties control the location of the HTML help page that is viewed.
To enable or disable one of the ServiceDebugBehavior features using a configuration file:
Add a
behaviorConfiguration
attribute to the <service> element for your WCF service. Endpoint behaviors are configured on <endpoint> elements; service behaviors on <service> elements.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.Add a <serviceDebug> 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.
Constructors
ServiceDebugBehavior() |
Initializes a new instance of the ServiceDebugBehavior class. |
Properties
HttpHelpPageBinding |
Gets or sets high-level access to the definition of a binding. |
HttpHelpPageEnabled |
Gets or sets a value that controls whether Windows Communication Foundation (WCF) publishes an HTML help page at the address controlled by the HttpHelpPageUrl property. |
HttpHelpPageUrl |
Gets or sets the location at which the HTML help file is published. |
HttpsHelpPageBinding |
Gets or sets high-level access to the definition of a binding. |
HttpsHelpPageEnabled |
Gets or sets a value that specifies whether Windows Communication Foundation (WCF) returns an HTML help file over HTTPS at the address controlled by the HttpsHelpPageUrl property. |
HttpsHelpPageUrl |
Gets or sets the location at which an HTML file is published for retrieval using HTTPS. |
IncludeExceptionDetailInFaults |
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. |
Methods
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
Explicit Interface Implementations
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) |
Implements the AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) method to support the behavior. |
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) |
Implements the ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) method to support the behavior. |
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase) |
Implements the Validate(ServiceDescription, ServiceHostBase) method to support the behavior. |
Applies to
.NET