명명 된 파이프가 올바르게 작동하는지 테스트하는 쉬운 방법이 있습니까? 내 앱에서 보내는 데이터가 실제로 전송되고 있는지 확인하고 싶습니다. 모든 명명 된 파이프 목록을 얻는 빠르고 쉬운 방법이 있습니까?
답변:
sysinternals에서 Process Explorer를 사용 하여이를 볼 수 있습니다 . "찾기-> 핸들 또는 DLL 찾기 ..."옵션을 사용하고 "\ Device \ NamedPipe \"패턴을 입력합니다. 어떤 프로세스가 어떤 파이프가 열려 있는지 보여줍니다.
pipelist.exe
SysInternals에서 사용 하는 것은 더 간단하지만 명령 줄일뿐입니다.
Windows Powershell 콘솔에서 다음을 입력합니다.
[System.IO.Directory]::GetFiles("\\.\\pipe\\")
get-childitem \\.\pipe\
이것은 객체 목록을 반환합니다. 이름 만 원하는 경우 :
(get-childitem \\.\pipe\).FullName
대신 다음을 시도하십시오.
String[] listOfPipes = System.IO.Directory.GetFiles(@"\\.\pipe\");
pipe
왔습니까?
Sysinternals의 pipelist.exe 를 사용하십시오 .
Chrome에서 "file : //.//pipe//"로 이동하여 모든 열린 명명 된 파이프를 나열하는 기능을 우연히 발견했습니다.
이것에 대한 언급을 찾을 수없는 것 같고 저에게 매우 도움이 되었기 때문에 공유 할 수 있다고 생각했습니다.
에서 CMD
프롬프트 :
>ver
Microsoft Windows [Version 10.0.18362.476]
>dir \\.\pipe\\
두 번째 파이프는 제출 될 때이 웹 사이트에서 해석되었습니다. 처음에 두 개의 백 슬래시가 필요합니다. 따라서 System.IO.Directory.GetFiles (@ "\\. \ pipe \")를 사용해야합니다.
이 함수 호출이 '경로에 잘못된 문자'를 던지는 것을 보았습니다. 내 컴퓨터의 파이프 중 하나에 잘못된 문자가있는 경우 예외입니다. PipleList.exe는 정상적으로 작동했기 때문에 MS의 .net 코드의 버그처럼 보입니다.
C:\myLocation\someFile.x
이 오류를 발생시킵니다.