2010-01-21 6 views
2

몇 가지 실행을 로그로 생성하는 Windows 서비스가 있습니다. 또한 로그 파일에 기록하는 모든 로그 메시지를 console.writeline 호출합니다. 그러나 Windows 서비스부터 console.write 행은 보이지 않습니다.실행중인 Windows 서비스에 C# 콘솔 응용 프로그램을 연결하려면 어떻게해야합니까?

(이미 실행중인) 내 서비스에 첨부 할 수있는 C# 콘솔 응용 프로그램을 작성하고 프로세스 (내 Windows 서비스)에서 생성하는 모든 메시지를 console.writeline 개 표시 할 수 있습니다.

업데이트 : 로그의 볼륨이 매우 빈번합니다 (매분 50 메시지). Windows 이벤트 로그를 군중에 넣고 싶지 않습니다. cosole 창을 사용하면 로그를보고 편리하게 종료 할 수 있습니다.

답변

0

log4net에 의해 생성 된 로그 파일에 tail이라는 cygwin을 사용했습니다. 이것은 나를 위해 속임수를 쓰는 것 같습니다.

모든 도움에 감사드립니다!

5

서비스에서 창을 표시하는 것은 "올바른"세션 (Windows에서는 여러 사용자가 로그온 할 수 있음)을 찾아야하므로 좋지 않습니다. 서비스가 사용자의 데스크톱에 액세스 할 수 있어야합니다.

대신 Console.WriteLine 전화를 Trace.WriteLine으로 변경하는 것이 가장 쉽습니다. 그런 다음 이러한 추적 메시지에 첨부 할 수 있습니다 (예 : SysIntenal의 DebugView을 사용하여.

+0

+1 DebugView – Fernando

1

서비스를 대화 형으로 만들 수 있습니다. 콘솔 창을 볼 수는 있지만 항상 표시되며 은 서비스를 종료하면으로 생각합니다.

또는 콘솔 프로세스가 직접 서비스 프로세스를 시작하는 대신 적절한 간격으로 로그 파일에서 업데이트를 읽도록하십시오.

+0

당신의 대안이 훨씬 더 나은 해결책이라고 생각합니다. – ChaosPandion

+0

대체품은 무료로 사용할 수 있습니다. http://tailforwin32.sourceforge.net/ –

+0

그리고 5 센트 : 데스크톱과의 서비스 상호 작용은 오랫동안 마이크로 소프트에 의해 크게 낙담되어 있었고 여전히 작동하는지는 확실하지 않습니다. Windows 7 또는 Vista –

4

기존 서비스에 콘솔을 연결하는 데 어려움을 겪을 것입니다. 두 쉬운 옵션

하는 당신이 당신의 갱신을 다시 다음 wintail 오픈 또는

비슷한 할 수있는 텍스트 파일에

  • 쓰기 로그 Windows 응용 프로그램에
    1. 쓰기 - 다음 가장 좋은 것입니다 번호 2.

  • 1

    콘솔 창에 표시하려는 메시지가 없으면 Windows 이벤트 뷰어에 메시지를 기록하는 것이 좋습니다. 이 link 도움이 될 것입니다 ...

    0

    UDP를 통해 데이터를 보내고 데이터를 표시하는 간단한 프로그램을 만듭니다.
    귀하는 비동기 작업을 보증하고 다른 호스트로 보낼 수도 있습니다.

    관련 문제