コード例 #1
0
        private static RemoteNode CreatePrivate(IOperationTracker operationTracker, IPEndPoint endPoint)
        {
            var socket = new SocketEndPoint(EndPointType.Client, "Distributor",
                                            clientAuthenticator: MachineNameAuthenticator.CreateClient(),
                                            heartbeatSettings: new HeartbeatSettings
            {
                AllowRemoteHeartbeatDisable = true
            });

            try
            {
                socket.Connect(endPoint);
                return(new RemoteNode(operationTracker, socket, endPoint.ToString()));
            }
            catch (Exception)
            {
                socket.Dispose();
                throw;
            }
        }
コード例 #2
0
        public NodeServer(string serviceName, INetworkServiceDiscoverer networkServiceDiscoverer, IEnumerable <string> allowedMachineNames)
        {
            LogAllowedHosts(allowedMachineNames);

            _socket = new SocketEndPoint(EndPointType.Server,
                                         serviceName,
                                         clientAuthenticator: MachineNameAuthenticator.CreateForServer(allowedMachineNames.ToArray()),
                                         networkServiceDiscoverer: networkServiceDiscoverer,
                                         heartbeatSettings: new HeartbeatSettings
            {
                AllowRemoteHeartbeatDisable = true
            });
            _socket.OnDisconnected += SocketOnOnDisconnected;

            _taskScheduler = new DefaultTaskScheduler();
            _filesystem    = new Filesystem(_taskScheduler);

            _interfaces = new Interfaces();
            _socket.CreateServant <IInterfaces>(ObjectIds.Interface, _interfaces);

            _files = new Files(_filesystem);
            _socket.CreateServant <IFiles>(ObjectIds.File, _files);

            _shell = new Shell();
            _socket.CreateServant <IShell>(ObjectIds.Shell, _shell);

            _services = new Services();
            _socket.CreateServant <IServices>(ObjectIds.Services, _services);

            _processes = new Processes();
            _socket.CreateServant <IProcesses>(ObjectIds.Processes, _processes);

            _network = new Network();
            _socket.CreateServant <INetwork>(ObjectIds.Network, _network);

            _registry = new Registry();
            _socket.CreateServant <IRegistry>(ObjectIds.Registry, _registry);
        }