Menu

Run AsyncWcfLib.Test2

asy proger

Test2 includes four WinForms applications exchanging messages.
You can download the source, exe, dll and config files from http://sourceforge.net/projects/asyncwcflib.
Start these applications by executing "Test2/Test2.net45vs11.cmd", "Test2/Test2.vs2010.cmd" or "Test2/Test2.cmd.sh" on Linux.

Test2.Client.exe

Use the lower pane to connect your client and see requests and responses exchanged.
Check the speed test checkbox in order to measure message roundtrip performance.

The upper pane is used in Test3 to connect an older version of the service.

Test2.ClientAsyncAwait.exe

Same as above but implemented using the new C# async-await semantics.

Test2.Service.exe

The service listens on requests from Test2.Clients. The service shares the data contract in Test2.Messages.dll with the clients. See [AsyncWcfLib class diagram messages].
The Window displays the number of request received per second.

I measured following speed test results on virtual machines:

  • 1200 requests/sec when starting client and service with Test2.vs2010.cmd script on a single host.
  • 600 requests/sec when starting client and service in VisualStudio.
  • 150 requests/sec when using ws2007HttpBinding instead of basicHttpBinding and starting from VisualStudio.
  • 15 requests/sec when communicating to Linux.

You may start a second instance of Test2.Service. Each service automatically uses a different TCP port to listen for requests.
As long as the first instance is running, all clients are connected to the first service instance by the router.
When the first service instance is shut down, the clients are connected to the second instance after a short timeout period.
This backup behaviour is applied, when two services with the same servicename are started up, see [Service- and client identification].

SF.AsyncWcfLib.Router.exe

This WcfRouterService implementation is hosted in a WinForms application.
It is used by AsyncWcfLib to automatically register and lookup service names.
The status window has a list of all registered services, marked with "++" when running or "--" when disconnected or timed out.


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.