Microsoft MVP성태의 닷넷 이야기
윈도우 서비스 프로그램 - FORM 애플리케이션 감시서비스 [링크 복사], [링크+제목 복사],
조회: 4017
글쓴 사람
guest
홈페이지
첨부 파일
 

이미 만들어놓은 myForm.exe가 있습니다
시작프로그램에 등록되어 있어 매일 오후 5시~5시30분 동안 작동


만들려는 윈도우서비스프로그램 기능(testservice)

기능1> myForm.exe 프로그램을 에러를 감시한다 (매일 오후 5시~5시30분)
기능2> myForm.exe 에러 발생 시 myForm.exe를 testservice는 강제종료시킨다(Ctrl + Alt + Del써야하는 상황에서도)
기능3> 오후5시30분 이전이라면 myForm.exe를 제구동한다

**** 이때 ***

어떻게 testservice는 myForm.exe의 에러를 알아채나요? myForm핸들을 testservice에 등록?
myForm.exe에서 에러자체도 발생시키지 못하는 먹통상황(Ctrl + Alt + Del쓰는 상황에서도)까지도 대비하고 싶은데요

설계방향과 학습주제와 순서를 알고 싶습니다








[최초 등록일: ]
[최종 수정일: 3/2/2023]


비밀번호

댓글 작성자
 



2023-03-02 01시17분
간단하게는, myform에서 어떤 식으로든 오류를 전파시켜줘야 합니다. 특정 위치에 오류 로그를 쓰던가, 아니면 내부에서 오류가 발생할 때마다 특정 소켓으로 전송을 하든가... 원하는 대로 처리하시면 됩니다. 그렇게 전파해서 service 측에서 받아 처리합니다.

복잡하게라면, myform을 직접 시작하지 말고 별도의 진입 프로세스 단계를 하나 더 둡니다. 그 프로세스에서 myform을 실행하도록 만들고, 이때 Debug 모드로 진행하면 하위 프로세스의 오류를 모두 감지할 수 있습니다.

C# - DbgEng.dll을 이용한 간단한 디버거 제작
; https://www.sysnet.pe.kr/2/0/12096

.NET 스레드 콜 스택 덤프 (5) - ICorDebug 인터페이스 사용법
; https://www.sysnet.pe.kr/2/0/1249

혹은 유사하게 Profiler를 이용하는 경우도 가능합니다.

(닷넷 프로세스를 대상으로) 디버거 방식이 아닌 CLR Profiler를 이용해 procdump.exe 기능 구현
; https://www.sysnet.pe.kr/2/0/12049
정성태
2023-03-02 02시38분
[guest] 바로 이거였습니다 하지만 고수들의 영역이네요
일단 지도를 보고 하나하나 살펴봐야 겠네요
즐 하루
[guest]
2023-03-03 12시16분
[guest] 삭제된 블로그 -> http://blogs.microsoft.co.il/pavely/2015/07/27/writing-a-simple-debugger-with-dbgeng-dll/

자료 감사하지만 자료가 삭제되어 버렸네요 ㅜㅜ
[guest]
2023-03-03 12시21분
[guest] 머리가 나빠서 이해가 안되네요
특히 DbgEng.dll 블로그는 삭제되어 더 이해가 안되네요
[guest]
2023-03-03 02시20분
[guest] 죄송한데 public class UserDebugger : IDebugOutputCallbacks, IDebugEventCallbacksWide, IDisposable
저기서 부터 막히네요
[에러메시지]
Class UserDebugger cannot have multiple base classes --> 상속은 1개 class만 복수 클래스는 interface이용

오전 내 구글링인데 자료 거의 없고
http://blogs.microsoft.co.il/pavely/2015/07/27/writing-a-simple-debugger-with-dbgeng-dll/
삭제된 저기에 핵심이 있을 것같긴한데 공부를 더 해봐야 겠습니다 ㅜㅜ
[guest]
2023-03-03 04시31분
[guest] 그냥 에러발생 시 Async로 text파일에 기록하고
this.Close();로 처리하려합니다

너무 어려워서요 어쨋거나 감사드려요
[guest]
2023-03-03 06시30분
좋은 선택입니다. ^^ 저 역시 그렇게 했을 것입니다. 그나저나, 자신의 응용 프로그램에 대해 주변에 선임 급의 개발자가 있다면 잘 상담해 보세요. 제가 자세한 내부 사항은 모르지만, 아마 저라면 서비스 구현 없이 myform 하나로 끝냈을 것입니다.

참고로 본문의 경우 소스 코드를 github에 모두 공개했습니다. (링크로 걸어놨는데... ^^;)
정성태
2023-03-08 08시59분
[지나가는사람] 프로그램이 먹통이 되는것까지 감안한 가장 간단한 방법은,
WndProc() 콜백 함수를 사용해서 윈도우 메세지를 주고 받는겁니다.
3초나 5초에 한번씩 계속해서 주고 받으면서 서로 살아있다는걸 확인하고
myform 프로세스가 없거나 일정 시간동안 신호가 없으면 강제로 재시작해주면 됩니다.
[guest]

... 46  47  48  49  50  51  52  53  54  55  56  57  [58]  59  60  ...
NoWriterDateCnt.TitleFile(s)
1180김형지11/6/201314828안녕하십니까. 프로그램이 실행되지 않아 여쭙고자 합니다ㅠ [1]파일 다운로드1
1179이민석11/4/201314407[긴급질문] [in,out] 배열을 C# 에서 C/C++ 로 넘기는 방법 - 두번째 이야기 관련 질문.. [6]파일 다운로드1
1178박진영11/1/201313949[급질문] IIS 하위 가상폴더 구성 문의 [4]
1177Jeon...10/28/201310862안녕하세요~ 어머니께 물어서 사이트를 찾아왔어요 [2]
1176김태훈10/25/201310632AxWebBrowser에 대해 질문드립니다. [1]
1175서경희10/20/201315647netscape 지원이 되지 않는다는 문구.. [2]파일 다운로드1
1174임동찬10/16/201314448프리징 현상에 대한 고민 [5]
1173김재영10/8/201310270인터페이스에 대해 기초적 질문이 있습니다. [2]파일 다운로드1
1172박진영10/2/201313165웹사이트 연결시 AJAX 어셈블리 오류 문의드립니다. [5]파일 다운로드1
1171링거8/30/201321150ClickOnce 업데이트 문제. [4]
1170임동찬8/28/201312490비동기적 이벤트 핸들링 방법 [2]
1167나종식8/20/201311614win7 에서 LSP 가 DNS Client 에 인젝션 안되는 문제 [6]
1165임동찬8/19/201310927오류 발생시 로깅 문제.. [3]
1164박철8/19/201311571모바일 게임서버를 작성 하려면 무엇부터 시작하여야 하나요? [2]
1163안연준8/2/201311045음... 안녕하세요 ^^ 윈도우즈 폼에 대해서 잠시 물어볼께요 [3]
1162박진영7/23/201395091개의 PC에서 동일사이트 접속제한을 어떻게 하죠? [1]
1161Ji Y...7/12/201312245안녕하세요? 음성인식 관련해서 질문있습니다, [2]
1160이상식7/12/201312622웹서비스 커넥션 풀 오류입니다. [6]
1159김덕성7/4/201320834C# 마샬링 관련 문의입니다 [3]
1157이상식6/26/201314474빌드시 오류인데 원인을 모르겠네요. [2]파일 다운로드1
1156정환나라6/20/201311658In-Process Side-By-Side 동작 원리는 어떻게 되는걸까요? [3]
1155MD워시퍼6/20/201310654안녕하세요. 한가지 궁금한 것이 있어서 문의를 드립니다. [1]
1154it 대...6/13/201313716무선 패킷 스니핑 프로그램 [1]
1153이상헌6/8/201311231죄송합니다;; 또다시 의문점이 생겨 질문드립니다. [1]
1152이상헌6/8/201310913넷두이노 플러스 펌웨어 다운로드가 안되네요;;; [1]
1151황기동6/5/201311674무선 패킷 전송관련 질문 [1]
... 46  47  48  49  50  51  52  53  54  55  56  57  [58]  59  60  ...