public void Open()
        {
            try
            {
                PipeSecurity pipeSecurity = new PipeSecurity();
                // deny network access, allow read/write to everyone locally and the owner/creator
                pipeSecurity.SetSecurityDescriptorSddlForm("D:(D;;FA;;;NU)(A;;0x12019f;;;WD)(A;;0x12019f;;;CO)");

                NamedPipeServerStream pipeListener =
                    new NamedPipeServerStream(localPipe, PipeDirection.InOut,
                                              NamedPipeServerStream.MaxAllowedServerInstances,
                                              PipeTransmissionMode.Message, PipeOptions.Asynchronous,
                                              4096, 4096, pipeSecurity);
                pipeListener.BeginWaitForConnection(ClientAccepted, pipeListener);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Unable to open listener: {0}", ex.Message);
                throw;
            }
        }