AppDynamics automatically detects entry points for client requests to Windows Communication Foundation (WCF) services. If the request occurs on an originating tier, the method or operation marks the beginning of a business transaction and defines the transaction name. For information on originating tiers, see Business Transactions.

The .NET Agent detects async entry points for the following patterns:

  • Task-based asynchronous operations
  • IAsyncResult Begin-End Asynchronous pattern

Controlling Correlation Header Location

In 4.4 and earlier, when WCF calls execute on a downstream tier, AppDynamics includes them as part of the business transaction from the originating tier. If the downstream WCF service uses the NetTcpBinding in WCF, you must register the app agent node property enable-soap-header-correlation with a value of true. See 'enable-soap-header-correlation' on App Agent Node Properties Reference. Otherwise, the .NET Agent will detect the WCF call as the entry point for a new business transaction.

In the following table, when the node property is set to the default (false), the correlation message with header will only successfully deliver when sent over HTTP, not over SOAP with an HTTP wrapper or other protocol. When the node property is set to true, the correlation message with header will succeed in all scenarios.


enable-soap-header-correlation
HTTP
SOAP (HTTP)
SOAP (other)
4.4 defaultfalseX--
4.4trueXXX


In 4.4.1 and later, the enable-soap-header-correlation node property and the default behavior for SOAP calls over non-HTTP protocols in WCF have changed. In addition, a new property, disable-soap-header-correlation-non-http, has been added. See disable-soap-header-correlation-non-http on App Agent Node Properties Reference. With the new default AppDynamics will, by default, include downstream WCF services using NetTcpBinding as part of business transactions.

The following table captures the changes and additions of the correlation data for the following use cases:

  • When the node properties for both enable-soap-header-correlation and disable-soap-header-correlation-non-http are set to the default (false), the correlation message with header will only successfully deliver when sent over HTTP or SOAP wrapped in a protocol other than HTTP.
  • When the node property for enable-soap-header-correlation is set to true, and the disable-soap-header-correlation-non-http node property is set to the default (false), the correlation message with header will succeed in all scenarios.
  • When the node property for enable-soap-header-correlation is set to the default (false), and the disable-soap-header-correlation-non-http node property is set to true, the correlation message with header will only successfully deliver when sent over HTTP, not over SOAP with an HTTP wrapper or other protocol.
  • When the node properties for both enable-soap-header-correlation and disable-soap-header-correlation-non-http are set to true, the correlation message with header will only successfully deliver when sent over HTTP or SOAP with an HTTP wrapper, not over SOAP with another protocol.

When upgrading from 4.4.0 to 4.4.1 or later, the enable-soap-header-correlation property retains its previous value and disable-soap-header-correlation-non-http defaults to false.


enable-soap-header-correlation
disable-soap-header-correlation-non-http
HTTP
SOAP (HTTP)
SOAP (other)
4.5 defaultfalsefalseX-X
4.5truefalseXXX
4.5 falsetrueX--
4.5truetrueXX-

 
By default, the .NET Agent does not correlate EUM transactions for WCF entry points. You can enable EUM correlation for WCF using the wcf-enable-eum node property. This feature is useful when an instrumented mobile application calls directly into a WCF entry point. See 'wcf-enable-eum' on App Agent Node Properties Reference.

Automatic Naming for WCF Transactions

By default, the AppDynamics auto-detection naming scheme identifies all WCF transactions using the service name and operation name:

ServiceName.OperationName
CODE

For example, a web service for a travel website books reservations from client front ends: TravelService.BookTravel. You can rename or exclude automatically discovered transactions from the Business Transactions List.

Custom Match Rules for WCF Transactions

Custom match rules provide flexibility for WCF transaction naming. When you define a match rule, AppDynamics uses the rule name for the business transaction name. See Custom Match Rules for more information.

When AppDynamics detects a request matching your specified criteria, it identifies the request using your custom name. You can match based upon:

Web Service Name

Operation Name

For example, you could report all operations for a TravelService, such as SearchTravel and BookTravel, as one business transaction.