private void Initialize() { if (_pipeType.Equals(PipeType.SERVER)) { PipeSecurity ps = new PipeSecurity(); ps.AddAccessRule(new PipeAccessRule("Users", PipeAccessRights.ReadWrite | PipeAccessRights.CreateNewInstance, AccessControlType.Allow)); ps.AddAccessRule(new PipeAccessRule("CREATOR OWNER", PipeAccessRights.FullControl, AccessControlType.Allow)); ps.AddAccessRule( new PipeAccessRule("SYSTEM", PipeAccessRights.FullControl, AccessControlType.Allow)); ps.AddAccessRule( new PipeAccessRule("Everyone", PipeAccessRights.ReadWrite, AccessControlType.Allow)); _pipeStream = new NamedPipeServerStream( _pipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Message, PipeOptions.WriteThrough, 1024, 1024, ps); ((NamedPipeServerStream)_pipeStream).WaitForConnection(); _clientConnected = true; } else { _pipeStream = new NamedPipeClientStream(_pipeName); ((NamedPipeClientStream)_pipeStream).Connect(); _clientConnected = true; } _streamReader = new StreamReader(_pipeStream); _streamWriter = new StreamWriter(_pipeStream); }