NamedPipeClientStream não pode acessar a NamedPipeServerStream na sessão 0

Eu tenho NamedPipeClientStream que se conecta a NamedPipeServerStream. Eles trocam algumas mensagens e, em seguida, o fechamento de NamedPipeClientStream, enquanto NamedPipeServerStream é recriado e continua ouvindo os canais do cliente. (Eu não consegui fazer um Server Pipe assíncrono, então isso é uma espécie de dog-nail)

A interação cliente-servidor funciona bem durante os fluxos do meu cliente iniciados a partir de sessões normais do usuário.

Mas há uma situação em que o pipe do cliente é iniciado a partir da sessão 0 no servidor Win7 e win2008. Quando isso acontece, eu tive um erro no fluxo do cliente:

"Acesso ao caminho é negado"

Qual é o problema? Como evitar isso?

Desculpe eu não posso te dizer mais informações sobre exceção. Só tenho essa mensagem no log. E eu não posso depurar meu programa da sessão zero, posso?

O código do fluxo do 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);

Talvez algo esteja errado com as configurações de segurança?

E o código do 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..
    }
    //...
}

O servidor é iniciado como serviço do windows em LocalSystem. O cliente - é um aplicativo de console simples. É lançado por outro aplicativo lançado do serviço LocalSystem.

questionAnswers(1)

yourAnswerToTheQuestion