2010-04-20 2 views
0

Windows 서비스의 상태를 표시하거나 GUI 응용 프로그램 (시작/중지)을 제어하는 ​​것은 쉽지만 서비스에서 알림을 수신/보내려면 어떨까요? 좋아요 : 관심을 필요로한다는 것을 사용자에게 알려주는 서비스입니다. 서비스 컨트롤러와 서비스/데몬간에 통신하는 방법은 무엇입니까?

여러 컨트롤러를 가질 수 있음을 고려하시기 바랍니다

은 다중 사용자 환경에서 언제든지 시작했다.

통신의 이런 종류의 당신이 예를 알고 (오픈 소스)를합니까? 플랫폼 독립적 인 솔루션 :

답변

0

에 대한

추가 포인트 "사용자가"서비스를 모니터링하는 사람의 경우, 어떻게 이벤트 로그에 기록한 다음, 기업 이벤트 모니터링 시스템이 경고를 보낼 수있는에 관하여. 또는 서비스에서 이벤트 로그에 문제를 기록한 다음 전자 메일을 보냅니다. 서비스의 "사용자"또는 클라이언트 인 경우

여기에 별도의 또는 여러 개의 응용 프로그램이 완전히 문제를 understadning없이 몇 생각입니다.

  1. 파일에 쓰기. 클라이언트에게 특정 클라이언트 인스턴스에 대한 파일을 작성한 다음 파일에 서비스를 기록하도록 동의 한 파일 또는 일부 동의 된 토큰을 서비스에 알리십시오. 클라이언트는 파일을 모니터 할 수 있습니다.
  2. 상태 Ping. 클라이언트가 정기적으로 백그라운드 스레드에서 서비스에 핑 (ping)하여 서비스 수행 방법을 묻습니다. 건강에 해 롭지 않다면, 클라이언트는 더 많은 정보를 얻기 위해 서비스를 ping 할 수 있습니다. LastMessage를받는 것과 같습니다.
  3. 오픈 소켓 또는 엔드 포인트. 서비스가 클라이언트를 호출 할 수 있도록 서비스에서 다시 통신을 설정하는 방법을 찾습니다. 클라이언트가 먼저 서비스에 알려서 호출 할 수 있도록 클라이언트가이를 시작할 수 있습니다. 세부 사항을 잊어 버렸지 만 WCF가이를 처리 할 수 ​​있어야합니다. 좀 더 일반적인 것을 원하면 자신의 롤을 만들어야 할 수도 있습니다.
이러한 아이디어가 도움이되기를 바랍니다.

0

옵션으로, 우리의 MsgConnect 서비스와 컨트롤러 사이에 메시지를 보낼 (소스 무료) (크로스 플랫폼)를 사용합니다. 서비스와 컨트롤러 간의 통신은 로컬 (MMF 또는 소켓 전송을 통해) 및 원격 (소켓 전송을 통해)에서 모두 가능합니다.

+0

"해당되는 경우 오픈 소스"... MsgConnect가 상용 제품임을 의미합니다. – sorin

+0

유닉스/리눅스 플랫폼에서 사용할 수있는 GPL 버전이 있습니다. –

관련 문제