Pergunta

Existe uma maneira fácil de testar se o pipe nomeado está funcionando corretamente? Eu quero ter certeza de que os dados que eu estou enviando do meu aplicativo realmente está sendo enviado. Existe uma maneira rápida e fácil de obter uma lista de todos os pipes nomeados?

Foi útil?

Solução

Você pode ver estes com Process Explorer da Sysinternals. Use o "Find -> Localizar identificador ou DLL ..." opção e insira o padrão "\ Device \ NamedPipe \". Ela vai mostrar que os processos têm que tubos abrir.

Outras dicas

Tente o seguinte em vez disso:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");

No PowerShell console do Windows, digite

[System.IO.Directory]::GetFiles("\\.\\pipe\\")


Se a sua versão OS é maior do que o Windows 7, você também pode digitar

get-childitem \\.\pipe\

Use pipelist.exe da Sysinternals.

C #:

String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");

Eu tropecei através de um recurso no Chrome que irá listar todos os pipes nomeados abertos ao navegar para "file: //.//pipe//"

Desde que eu não consigo encontrar qualquer referência a isso e tem sido muito útil para mim, eu pensei que eu poderia compartilhar.

O segundo tubo foi interpretado por este site quando submetidos ... Você precisa de duas barras invertidas no início. Portanto, certifique-se de System.IO.Directory.GetFiles uso (@ "\\. \ Pipe \").

Note que eu já vi isso chamada de função lançar uma 'caracteres ilegais no caminho.' exceção quando um dos tubos na minha máquina tinha caracteres inválidos. PipleList.exe trabalhou ok, porém, isso parece ser um bug no código .net de MS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top