문제

네트워크에서 C#에서 명명 된 파이프를 설정하는 올바른 방법은 무엇입니까?

현재 '클라이언트'와 '서버'라는 두 대의 기계가 있습니다.

서버는 다음과 같은 방식으로 파이프를 설정합니다.

NamedPipeServerStream pipeServer = new NamedPipeServerStream(
    "pipe",
    PipeDirection.InOut,
    10,
    PipeTransmissionMode.Byte,
    PipeOptions.None)
pipeServer.WaitForConnection();
//... Read some data from the pipe

클라이언트는 다음과 같은 방식으로 연결을 설정합니다.

NamedPipeClientStream pipeClient = new NamedPipeClientStream(
    "server",
    "pipe",
    PipeDirection.InOut);
pipeClient.Connect(); //This line throws an exception
//... Write some data to the pipe

" server"로 이동하여 '서버'머신을 네트워크에서 액세스 할 수 있습니다.

프로그램을 실행할 때마다 "경로에 대한 액세스가 거부된다"라는 시스템을 얻습니다. 로컬 컴퓨터에서 서버와 클라이언트를 실행하고 ""에 연결하려고하면 코드가 잘 작동합니다. 클라이언트와 함께.

도움이 되었습니까?

해결책

기계간에 명명 된 파이프를 사용하는 것은 불가능합니다.

"WCF-Netnamedpipe 어댑터는에 대한 교차 프로세스 통신을 제공합니다 같은 컴퓨터"

http://msdn.microsoft.com/en-us/library/bb226493.aspx

다른 팁

클라이언트가 파이프에 액세스 할 수있는 권한이 있도록 PAMENDPIPESERVERSTREAM에 대한 권한을 설정해야합니다.

나는 당신의 pipeserverstream의 setAccessControl 메소드를 살펴볼 것입니다.

System.runtime.Runting 네임 스페이스를 살펴보십시오. IIRC, 명명 된 파이프는 원격 채널에서 사용하는 프로토콜을위한 옵션 중 하나입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top