This sample demonstrates how the messaging activities can be used with context-based correlation to correlate without having to explicitly specify correlation handles or queries.
This sample uses the .NET Context Exchange protocol that was introduced in .NET Framework version 3.5. The protocol outlines the message exchange pattern that is used to ensure that a client application communicates with the proper instance of the service by using a well-known message header (the Context header). In .NET Framework version 4, this mechanism is just one particular type of correlation: a context-based correlation.
ContextService returns the message header on the reply message of the first operation invocation (
OpenBankAccount) and the client is responsible for re-attaching that header on its subsequent calls (
ContextClient accomplishes this by using a CorrelationScope activity. Because the
ContextService is hosted in WorkflowServiceHost, an implicit CorrelationScope is created for that workflow that allows the context-based correlation to work automatically.
To use this sample
Open the NetContextExchangeCorrelation.sln solution in Visual Studio 2010.
Press CTRL+SHIFT+B to build the solution.
Set multiple start up projects by right-clicking the Solution and selecting Set Startup Projects. Add
ContextClient(in that order) as multiple start up projects.
Press CTRL+F5 to run the application. The
ContextClientconsole shows the calls being made to the service. The
ContextServiceconsole shows these calls being received and processed.
The samples may already be installed on your machine. Check for the following (default) directory before continuing.