Currently Test3 is not buildable and therefore not included in the download from http://sourceforge.net/projects/asyncwcflib.
Test3.cmd starts five WinForms applications exchanging messages from different versions of AsyncWcfLib:
Test2.ClientNew <--> Test2.ServiceNew
Test3.ClientOld <--> Test3.ServiceOld
Test3.ClientOld <--> Test2.ServiceNew
WcfRouter.exe referencing a new AsyncWcfLib
The project "Test3/Common" contains an old (V1.0) implementation of AsyncWcfLib. This implementation lacks at least one message field: WcfPartner.ProcessId.
Only the combination "Test2.ClientNew <--> Test2.ServiceNew" supports correct client identification of type [Service- and client identification]-Temporary host session.
When starting Test3 two times, you see that only in this combination the ClientId's given by the service are different (Client1[1] and Client1[2]).
This is because AsyncWcfLib V1.1 uses the operating system ProcessId to distinguish two clients with ApplicationInstance=0.
Use the upper pane to connect your client to the old service.
Use the lower pane to connect your client to the new service.
These services handles requests with new or old datacontracts.
Old services do not deserialize unknown fields, sent by new clients.
New services initialize fields to 0 when not sent by old clients.
The same rules apply on client side, when receiving messages with new or old datacontracts.