NamedPipeClientStream no puede acceder a NamedPipeServerStream en la sesión 0

Tengo NamedPipeClientStream que se conecta a NamedPipeServerStream. Intercambian un par de mensajes, y luego NamedPipeClientStream se cierra, mientras que NamedPipeServerStream se recrea y continúa escuchando las canalizaciones del cliente. (No pude hacer un Server Pipe asíncrono que funcione, así que esto es una especie de clavo de perro)

La interacción cliente-servidor funciona bien durante las transmisiones de mi cliente iniciadas desde sesiones de usuario normales.

Pero hay una situación en la que la canalización del Cliente se inicia desde la sesión 0 en los servidores Win7 y win2008. Cuando esto sucede tuve un error en la secuencia del Cliente:

"Acceso denegado al camino"

¿Cuál es el problema? ¿Cómo evitarlo?

Lo siento, no puedo decirle más información acerca de la excepción. Sólo tengo este mensaje en el registro. Y no puedo depurar mi programa desde cero sesión, ¿verdad?

El código de flujo del servidor:

PipeSecurity ps = new PipeSecurity();
System.Security.Principal.SecurityIdentifier sid = new System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.BuiltinUsersSid, null);
PipeAccessRule par = new PipeAccessRule(sid, PipeAccessRights.ReadWrite, System.Security.AccessControl.AccessControlType.Allow);
ps.AddAccessRule(par);
pipeClientConnection = new NamedPipeServerStream(General.PIPENAME, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, General.BUFFERSIZE, General.BUFFERSIZE, ps);
Console.Write("Waiting for client connection...");
IAsyncResult result = pipeClientConnection.BeginWaitForConnection(OnPipeConnected, pipeClientConnection);

Tal vez algo está mal con la configuración de seguridad?

Y el código del cliente:

using (NamedPipeClientStream pipeStream = new NamedPipeClientStream(".", General.PIPENAME, PipeDirection.InOut))
{
    try
    {
        Console.WriteLine("Connecting with pipe...");
        pipeStream.Connect(General.CONNECTIONTIMEOUT);
        Console.WriteLine("Pipe connection established");
        //..do something..
    }
    //...
}

El servidor se inicia como servicio de Windows en LocalSystem. El cliente - es una sencilla aplicación de consola. Es lanzado por otra aplicación lanzada desde el servicio LocalSystem.

Respuestas a la pregunta(1)

Su respuesta a la pregunta