Menu

Run AsyncWcfLib.Test3

asy proger

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 <--> Test3.ServiceOld
  • 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.

Test3.ClientOld.exe / Test2.Client.exe

Use the upper pane to connect your client to the old service.
Use the lower pane to connect your client to the new service.

Test3.ServiceOld.exe / Test2.Service.exe

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.


Related

Wiki: Home
Wiki: Service- and client identification

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.