public bool Connect(IFPSCallback callbackInstance) { DuplexChannelFactory<IFPSService> pipeFactory = new DuplexChannelFactory<IFPSService>( new InstanceContext(callbackInstance), new NetNamedPipeBinding(), new EndpointAddress(AppHealthService.BaseAddress + AppHealthService.ServiceAddress)); try { pipeProxy = pipeFactory.CreateChannel(); pipeProxy.Subscribe(System.Reflection.Assembly.GetExecutingAssembly().Location, Process.GetCurrentProcess().ProcessName); return true; } catch (Exception e) { Console.WriteLine(e.Message); return false; } }
private void RelaunchSubscriber(IFPSCallback subscriber) { if (!process.HasExited) { process.Kill(); } Process.Start(subscriberAppName); subscribers.Remove(subscriber); }