명명 된 파이프를 통해 서버에 연결하는 클라이언트를 작성했으며 서버에서 제대로 작동합니다. 그러나 원격 서버에 연결하려고하면 Connect()를 호출하면 "예외가 지원되지 않습니다."라는 예외가 발생하고 msdn에서 찾은 결과 도움이되지 않습니다..NET 명명 된 파이프 및 모호한 예외에 문제가 있음
이것은 관련 코드입니다. 다른 클라이언트 (소스는 볼 수 없지만 nxpipe를 사용한다는 것을 알고 있습니다)가 연결할 수 있기 때문에 서버와 경로가 존재한다고 확신합니다.
NamedPipeClientStream stream = new NamedPipeClientStream(serverName, pipeName, PipeDirection.InOut);
stream.Connect(timeout);
누구나 그 아이디어가 무엇입니까?
감사합니다.
EDIT (SOLVED) : 당신은 문제가 무엇인지 믿지 않을 것입니다. 먼저, 앱을 주문한 사람이 서버 앱을 실행하고 파이프를 열 것을 잊어 버렸습니다. 그래서 우리는 파이프가 원격 컴퓨터에서 열렸다고 가정하고 몇시간 동안 무슨 일이 일어나는지 알아 내려고 노력했습니다. 서버 앱을 실행하는 것을 잊은 것을 기억하고 (며칠 후) 여전히 문제가있었습니다. 그 시점에서 이미 .NET 파이프와 CreateFile을 사용하는 네이티브 파이프를 사용하여 클라이언트를 작성했습니다. 그 사람이 우리에게 파이프의 전체 이름을 알려주는 것을 잊어 버렸다. (잘못된 파이프 이름에 대해서는 "지원되지 않는다. 다행히도 우리는 이전에 사용했던 응용 프로그램을 사용 했었습니다.이 응용 프로그램은 하드 코딩 된 일부의 파이프 이름을 가지고 있었으므로 파이프 탐색기를 사용하여 파이프의 전체 이름을 확인하고 마지막으로 연결했습니다. 이제 작동합니다 : |
이것을 고려해 보셨습니까? "Windows XP Professional 및 Windows 2000 Server의 경우 최대 10 개의 파이프가 동시에 네트워크를 통해 연결할 수 있습니다." (출처 http://msdn.microsoft.com/en-us/library/system.io.pipes.namedpipeclientstream.aspx) – DaeMoohn
예외 스택 추적이란 무엇입니까? 클라이언트와 서버는 어떤 OS 플랫폼입니까? –
불행히도 지금은 사무실에 없기 때문에 스택 추적을 제공 할 수는 없지만 예외가 NamedPipeClientStream.Connect()에서 발생한다고 말할 수 있습니다. 또한 클라이언트는 32 비트 윈도우 7에서 C#으로 작성된 작은 응용 프로그램이며 서버는 천칭 자리 메인 프레임입니다. – fingerprint211b