This topic has not yet been rated - Rate this topic

ServiceDebugBehavior Class

Enables debugging and help information features for a service.

System.Object
  System.ServiceModel.Description.ServiceDebugBehavior

Namespace:  System.ServiceModel.Description
Assembly:  System.ServiceModel (in System.ServiceModel.dll)
public class ServiceDebugBehavior : IServiceBehavior

The ServiceDebugBehavior type exposes the following members.

  Name Description
Public method ServiceDebugBehavior Initializes a new instance of the ServiceDebugBehavior class.
Top
  Name Description
Public property HttpHelpPageBinding Gets or sets high-level access to the definition of a binding.
Public property HttpHelpPageEnabled Gets or sets a value that controls whether publishes an HTML help page at the address controlled by the HttpHelpPageUrl property.
Public property HttpHelpPageUrl Gets or sets the location at which the HTML help file is published.
Public property HttpsHelpPageBinding Gets or sets high-level access to the definition of a binding.
Public property HttpsHelpPageEnabled Gets or sets a value that specifies whether returns an HTML help file over HTTPS at the address controlled by the HttpsHelpPageUrl property.
Public property HttpsHelpPageUrl Gets or sets the location at which an HTML file is published for retrieval using HTTPS.
Public property 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.
Top
  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Top
  Name Description
Explicit interface implemetation Private method IServiceBehavior.AddBindingParameters Implements the IServiceBehavior.AddBindingParameters method to support the behavior.
Explicit interface implemetation Private method IServiceBehavior.ApplyDispatchBehavior Implements the IServiceBehavior.ApplyDispatchBehavior method to support the behavior.
Explicit interface implemetation Private method IServiceBehavior.Validate Implements the IServiceBehavior.Validate method to support the behavior.
Top

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 to return managed exception information in SOAP faults to clients for debugging purposes.

Caution note 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:

  1. Add a behaviorConfiguration attribute to the <service> element for your service. Endpoint behaviors are configured on <endpoint> elements; service behaviors on <service> elements.

  2. 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.

  3. 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.

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:


<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>



<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>


.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ