2008-11-13 4 views
4

호스트 응용 프로그램에서 만든 개체가 있는데 리모컨을 사용하여 원격으로 액세스 할 수 있습니다. 연결이 여전히 "활성"상태인지 테스트 할 수있는 방법이 있습니까? 아마도 원격 연결이 끊어 지거나 원격 연결의 상태를 알려주는 속성을 사용할 수있는 이벤트 일 수 있습니다. 거기에 뭔가가 있나요?원격 연결 테스트 방법 (체크 상태)

나는 일반적으로 원격 서버 MarshallByRef 클래스에 다른 방법을 추가

답변

8

는 (나는 일반적으로 같이 그것을 핑()를, 이름 : 아무것도하지 않고, 아무 것도 반환하지 않습니다

public void Ping() {} 

을 .. 그런 다음에 "테스트" 내 연결,이 메서드를 호출합니다 ... System.Net.Sockets.Exception throw 할 경우 연결을 잃었습니다 ....

+0

감사합니다. 프레임 워크에이 기능을 제공 할 수있는 기능이 없다는 것이 나의 의구심을 증명해주었습니다. 이 ping 메소드는 정상적으로 작동합니다. 감사합니다 – Jeremy

5

당신은 연결을 확인해야 할 경우 어떤 이점이 있습니까? , 그것은 당신이 당신의 원격 호출을 할 때 다음 순간에도 연결이 살아 있음을 의미하지는 않습니다.

리모컨 통화를 시도/캐치하면 알 수 있습니다.

이러한 유형의 검사는 네트워크 연결, 파일 잠금 등의 의미가 없습니다. 수표의 상태는 수표가 발행 된 후 즉시 바뀔 수 있습니다. 그냥 트레이에 넣고 정리가 실패하면 다시 시도하십시오.

+0

때문에 내가 remoting 개체는 Windows 응용 프로그램에서 호스팅됩니다. 응용 프로그램이 실행되고 있지 않으면 다시 시작할 수 있어야합니다. – Jeremy

+0

동일한 작업 - 호출이 실패하면 다시 시작합니다. 앞에서 말했듯이 ping은 거의 동일합니다. 단, 한 번만 호출하면됩니다. 다음 호출이 성공하거나 다음 호출이 끝날 때까지 응용 프로그램이 닫히지 않는다고 보장 할 수는 없습니다. –

+0

@Jeremy가 나온 것과 비슷한 솔루션을 찾고 있었고 'Ping'아이디어가 나에게도 도움이되었을 것입니다. @ Snyny는 맞습니다. 리모팅 객체가 'Ping'테스트 직후에 잘 닫히기 때문에 기본 레벨에서 예외를 처리하는 것이 훨씬 낫습니다. – SausageFingers