Esempio n. 1
0
 public void Open_Open_error()
 {
     var address = @"net.pipe://127.0.0.1/" + this.GetType().Name + MethodBase.GetCurrentMethod().Name;
     var serv = new Service(null);
     using (var host = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] { new Uri(address) }))
     {
         var b = new NDceRpc.ServiceModel.NetNamedPipeBinding();
         host.AddServiceEndpoint(typeof(IService), b, address);
         host.Open();
         host.Open();
     }
 }
Esempio n. 2
0
        public void InvokenBlockingWithParams_resultObtained()
        {
            var address = @"net.pipe://127.0.0.1/1/test.test/test";

            var serv = new Service(null);
            var host = new ServiceHost(serv, new Uri(address));
            var b = new NetNamedPipeBinding();
            host.AddServiceEndpoint(typeof(IService), b, address);
            host.Open();
            var f = new ChannelFactory<IService>(b);
            var c = f.CreateChannel(new EndpointAddress(address));
            var result = c.DoWithParamsAndResult(":)", Guid.NewGuid());
            Assert.AreEqual(2, result.d1);
            host.Dispose();
        }
Esempio n. 3
0
        public void Open_2Endpoints_callsBoth()
        {
            var baseAddress = @"net.pipe://127.0.0.1/" + this.GetType().Name + MethodBase.GetCurrentMethod().Name;
            var serv = new Service(null);
            using (var host = new ServiceHost(serv, new Uri[] { new Uri(baseAddress) }))
            {
                var binding = new NetNamedPipeBinding();
                host.AddServiceEndpoint(typeof(IService), binding, baseAddress + "/1");
                host.AddServiceEndpoint(typeof(IService), binding, baseAddress + "/2");
                host.Open();
                using (var channelFatory = new ChannelFactory<IService>(binding))
                {
                    var c1 = channelFatory.CreateChannel(new EndpointAddress(baseAddress + "/1"));
                    var c2 = channelFatory.CreateChannel(new EndpointAddress(baseAddress + "/2"));
                    c1.DoWithParamsAndResult("", Guid.Empty);
                    c2.DoWithParamsAndResult("", Guid.Empty);
                }

            }
        }
        public void ServerAncClientEndpointBehavior()
        {
            var hook = new InvokesCounterBehaviour();
            var address = @"net.pipe://127.0.0.1/test" + this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
            var serv = new Service(null);
            var host = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] { new Uri(address), });
            var b = new NDceRpc.ServiceModel.NetNamedPipeBinding();
            var serverEndpoint = host.AddServiceEndpoint(typeof(IService), b, address);
            serverEndpoint.Behaviors.Add(hook);
            Assert.AreEqual(0, hook.Counter);
            host.Open();
            Assert.AreEqual(1, hook.Counter);
            var f = new NDceRpc.ServiceModel.ChannelFactory<IService>(b);
            f.Endpoint.Behaviors.Add(hook);
            Assert.AreEqual(1, hook.Counter);
            var c = f.CreateChannel(new NDceRpc.ServiceModel.EndpointAddress(address));
            Assert.AreEqual(2, hook.Counter);
            var result = c.DoWithParamsAndResult("", Guid.NewGuid());

            host.Abort();
        }
Esempio n. 5
0
 public void InvokeOneWay_waitOnEvent_received()
 {
     var address = @"net.pipe://127.0.0.1/1/test.test/test";
     var wait = new ManualResetEvent(false);
     var serv = new Service(wait);
     var host = new ServiceHost(serv, new Uri(address));
     var b = new NetNamedPipeBinding();
     host.AddServiceEndpoint(typeof(IService), b, address);
     var f = new ChannelFactory<IService>(b);
     var c = f.CreateChannel(new EndpointAddress(address));
     host.Open();
     c.DoOneWay();
     wait.WaitOne();
     host.Dispose();
 }
Esempio n. 6
0
        public void TpcIp()
        {
            var address = @"net.tcp://127.0.0.1:18080";
            var serv = new Service(null);
            var host = new ServiceHost(serv, new Uri(address));
            var b = new NetTcpBinding();
            host.AddServiceEndpoint(typeof(IService), b, address);
            host.Open();
            var f = new ChannelFactory<IService>(b);
            var c = f.CreateChannel(new EndpointAddress(address));

            var result = c.DoWithParamsAndResult(":)", Guid.NewGuid());
            Assert.AreEqual(2, result.d1);
            host.Dispose();
        }
Esempio n. 7
0
 public void PipeChannel_openClose_fail()
 {
     var address = @"ipc:///test" + MethodBase.GetCurrentMethod().Name;
     var b = new LocalBinding();
     var serv = new Service(null);
     var host = new ServiceHost(serv, new Uri(address));
     host.AddServiceEndpoint(typeof(IService), b, address);
     host.Open();
     var f = new ChannelFactory<IService>(b);
     var c = f.CreateChannel(new EndpointAddress(address));
     c.DoWithParamsAndResult(null, Guid.Empty);
     host.Close();
     Exception comminicationEx = null;
     try
     {
         c.DoWithParamsAndResult(null, Guid.Empty);
     }
     catch (Exception ex)
     {
         comminicationEx = ex;
     }
     var obj = c as ICommunicationObject;
     var state = obj.State;
     Assert.AreEqual(CommunicationState.Faulted, state);
     Assert.That(comminicationEx, new ExceptionTypeConstraint(typeof(CommunicationException)));
 }
Esempio n. 8
0
        public void LongNamePipe()
        {
            var address = @"net.pipe://127.0.0.1/1/test.test/testtestLongNameLongNameLongNameLongNameLongNameLongNameLongNameLongNameLongNamefd0286a60b9b4db18659-b715e5db5b3bd0286a6-0b9b-4db1-8659-b715e5db5b3b";
            var serv = new Service(null);
            var host = new ServiceHost(serv, new Uri(address));
            var b = new NetNamedPipeBinding();
            host.AddServiceEndpoint(typeof(IService), b, address);
            host.Open();
            var f = new ChannelFactory<IService>(b);
            var c = f.CreateChannel(new EndpointAddress(address));

            var result = c.DoWithParamsAndResult(":)", Guid.NewGuid());
            Assert.AreEqual(2, result.d1);
            host.Dispose();
        }
Esempio n. 9
0
        public void Local()
        {
            var address = @"ipc:///test" + MethodBase.GetCurrentMethod().Name;
            var serv = new Service(null);
            using (var host = new ServiceHost(serv, new Uri(address)))
            {
                var b = new LocalBinding();
                host.AddServiceEndpoint(typeof(IService), b, address);
                host.Open();

                using (var f = new ChannelFactory<IService>(b))
                {
                    var c = f.CreateChannel(new EndpointAddress(address));
                    var result = c.DoWithParamsAndResult(":)", Guid.NewGuid());
                    Assert.AreEqual(2, result.d1);
                }
            }
        }
Esempio n. 10
0
        public void InvokeOtherService()
        {
            var address = @"net.pipe://127.0.0.1/1/test.test/test" + MethodBase.GetCurrentMethod().Name;
            var otherAddress = @"net.pipe://127.0.0.1/1/test.test/other" + MethodBase.GetCurrentMethod().Name;
            var wait = new ManualResetEvent(false);
            var srv = new Service(null);
            var otherSrv = new OtherService(wait);
            var host = new ServiceHost(srv, new Uri(address));
            var b = new NetNamedPipeBinding();
            host.AddServiceEndpoint(typeof(IService), b, address);
            var otherHost = new ServiceHost(otherSrv, new Uri(address));

            otherHost.AddServiceEndpoint(typeof(IOtherService), b, otherAddress);
            var f = new ChannelFactory<IService>(b);
            var c = f.CreateChannel(new EndpointAddress(address));

            host.Open();
            otherHost.Open();
            c.CallOtherService(otherAddress);
            wait.WaitOne();
            host.Dispose();
            otherHost.Dispose();
        }
Esempio n. 11
0
        public void TestOneWayConcurencyOnNamedPipe()
        {
            var address = @"net.pipe://127.0.0.1/testpipename" + MethodBase.GetCurrentMethod().Name;
            var srv = new Service();
            using (var server = new ServiceHost(srv, new Uri(address)))
            {
                server.AddServiceEndpoint(typeof(IService), new NetNamedPipeBinding { }, address);
                server.Open();
                using (var channelFactory = new ChannelFactory<IService>(new NetNamedPipeBinding { }))
                {

                    var client = channelFactory.CreateChannel(new EndpointAddress(address));

                    for (int i = 0; i < 20; i++)
                        client.OneWayExecute();
                    while (srv.Count != 20)
                    {
                        Thread.Sleep(10);
                    }
                }
            }
        }