public void CallServiceReturningSession2Times_sessionAreEqual() { var address = @"net.pipe://127.0.0.1/1/test.test/test" + MethodBase.GetCurrentMethod().Name; var binding = new NetNamedPipeBinding(); var data = new CallbackData { Data = "1" }; var srv = new CallbackService(data); var callback = new CallbackServiceCallback(); using (var host = new ServiceHost(srv, new Uri(address))) { host.AddServiceEndpoint(typeof(ICallbackService), binding, address); host.Open(); using (var factory = new DuplexChannelFactory <ICallbackService>(new InstanceContext(callback), binding)) { var client = factory.CreateChannel(new EndpointAddress(address)); client.Call(); } callback.Wait.WaitOne(); Assert.AreEqual(data.Data, callback.Called.Data); } }
public void CallServiceReturningSession2Times_sessionAreEqual() { var address = @"net.pipe://127.0.0.1/1/test.test/test" + MethodBase.GetCurrentMethod().Name; var binding = new NetNamedPipeBinding(); var data = new CallbackData { Data = "1" }; var srv = new CallbackService(data); var callback = new CallbackServiceCallback(); using (var host = new ServiceHost(srv, new Uri(address))) { host.AddServiceEndpoint(typeof(ICallbackService), binding, address); host.Open(); using (var factory = new DuplexChannelFactory<ICallbackService>(new InstanceContext(callback), binding)) { var client = factory.CreateChannel(new EndpointAddress(address)); client.Call(); } callback.Wait.WaitOne(); Assert.AreEqual(data.Data, callback.Called.Data); } }
public void TestOneWayCallbackConcurencyOnNamedPipe() { var address = @"net.pipe://127.0.0.1/testpipename" + MethodBase.GetCurrentMethod().Name; var srv = new CallbackService(); var callback = new CallbackServiceCallback(); using (var server = new ServiceHost(srv, new Uri(address))) { server.AddServiceEndpoint(typeof(ICallbackService), new NetNamedPipeBinding { }, address); server.Open(); using (var channelFactory = new DuplexChannelFactory<ICallbackService>(new InstanceContext(callback), new NetNamedPipeBinding { })) { var client = channelFactory.CreateChannel(new EndpointAddress(address)); for (int i = 0; i < 20; i++) client.OneWayExecute(); while (callback.Count != 20) { Thread.Sleep(10); } } } }
public void TestOneWayCallbackConcurencyOnNamedPipe() { var address = @"net.pipe://127.0.0.1/testpipename" + MethodBase.GetCurrentMethod().Name; var srv = new CallbackService(); var callback = new CallbackServiceCallback(); using (var server = new ServiceHost(srv, new Uri(address))) { server.AddServiceEndpoint(typeof(ICallbackService), new NetNamedPipeBinding { }, address); server.Open(); using (var channelFactory = new DuplexChannelFactory <ICallbackService>(new InstanceContext(callback), new NetNamedPipeBinding { })) { var client = channelFactory.CreateChannel(new EndpointAddress(address)); for (int i = 0; i < 20; i++) { client.OneWayExecute(); } while (callback.Count != 20) { Thread.Sleep(10); } } } }