문제

C # (4.0)에서 Windows 서비스를 만들고 명령 줄에서 Installutil 도구를 사용하여 설치하려고합니다. 그러나 나는 예외를 얻는다. 저는 코드의 어떤 부분의 일부가 예외를 일으키는 지 알아 냈습니다. 몇 가지 부서류 로깅을 사용하지만 무엇이든지 -하지만 이제는 왜 이해하고 싶습니다. 그래서 내가하고 싶은 것은 내 Windows 서비스 설치를 디버깅하는 것입니다.

저는 서비스 자체를 디버깅하는 방법을 알고 있습니다. 그러나 여기서는 Installer.Install(IDictionary stateSaver) 메소드의 내용을 서비스에서 디버깅하고 싶습니다.

디버거를 cmd.exe 프로세스에 연결하려고했지만 분명히 작동하지 않습니다. 나는 또한 디버거를 installutil 과정에 첨부하기 위해 생각하고 있었지만, 나는 이것을하는 방법이 없다.

나는이 게시물을 살펴 보았습니다 : 설치중인 Windows 서비스를 디버깅하는 방법은 무엇입니까? 및 여러 가지가 있지만이 경우 어떤 이유로이 녀석은 내 경우가 아닌 서비스에 이미 자신의 서비스가있는 것 같습니다.

어떻게이 작업을 수행 할 수 있습니까?

도움이 되었습니까?

해결책

설치 프로그램의 Debugger.Break(); 문을 넣을 수 있습니다.코드, 디버거를 시작해야합니다.

다른 팁

위의 작업이 작동하지 않으면이 프로세스도 작동합니다.기본적으로 디버그 모드로 컴파일하고 서비스를 통해 installutil.exe를 사용했습니다.).코드에서 프로세스 ID가있는 메시지 상자를 팝업합니다.Starting의 두 번째 인스턴스를 시작하고 해당 프로세스 및 디버그에 연결하십시오.메시지 상자가 설정을 허용하도록 일시 중지합니다.프로세스 ID는 중요하지 않습니다. named installutil.exe.일반적으로 코드 입력을 보장하기 위해 메시지 상자를 보장하려면 대개 debug.break ()를 넣습니다.

using System.Windows.Forms;
using System.Diagnostics;

...

#if DEBUG 
int processId = Process.GetCurrentProcess().Id;
string message = string.Format("Please attach the debugger (elevated on Vista or Win 7) to process [{0}].", processId);
MessageBox.Show(message, "Debug");
#endif

....
.

사용자 지정 Windows 서비스 설치 디버그

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top