C# interprocess 'broadcast'

393 Views Asked by At

I have 14 different web applications running in IIS, and 4 NT (Windows) services. All of these apps are written in c#. Typically, they would run on one server.

If the user makes a certain change in app 1, i want to notify all the rest of my applications of this.

After looking around, my options are really:

  1. WCF host inside each of my apps using named pipes.
  2. .net remoting via tcp

I can't use WM_COPYDATA because these apps don't have window handles.

I have tried WCF host inside apps, but it seems to slow down app pool creation in IIS; and more importantly, if the app domain is killed by the admin, it takes several seconds before it can be recreated as the service is still registered.

This concerns me with such overhead.

With .Net remoting, it seems i can't use anonymous pipes as i'd need a handle passed from each process to app1 (or vice versa).

With named pipes, it concerns me that i have to register each app on some port (not to mention that i'd have to listen on that via a singleton inside each app pool, which can then have multiple worker processes).

Ideally, i would be looking for something like Android OS 'broadcasts'.

What would be a good solution for such 'event' IPC on one server?

0

There are 0 best solutions below