지난 2019년 9/27 ~ 10/1일까지 고객사에서 기존 프로젝트를 신규로 업그레이드 작업을 진행했습니다.
MSSQL 서버와 IIS도 새로 설치하고 기존 데이타도 이관하였습니다.
환경이 달라 업그레이드에 많은 어려움을 많이 겪었습니다.(밤 10시까지 작업을 진행했습니다.)
데이타 이관도 끝나고 윈도우 서비스를 구동하였는데 원하는 동작을 하지 않았습니다.
환경 설정 파일은 외부 파일로 빼놓아서 설정은 코드 수정없이 바꿀 수 있는데 사용중인 서비스라 마음대로 테스트 할 수 있는 환경이 아니었습니다.
사용자들이 퇴근하고 난 저녁 시간에 작업을 수행하였는데,
환경 설정에 따른 디버깅이 필요해 윈도우 서비스 코드를 콘솔로 재포장해 디버깅을 진행했습니다.
디버깅후에 올바른 환경 설정 값을 구할 수 있었습니다.
윈도우 서비스 디버깅이 필요할때 콘솔로 재작업없이 기존 서비스 코드에서 하는 방법이 있어 공유합니다.
- 프로그램 출력 형식을 [콘솔 응용 프로그램]으로 변경합니다.
- 기존 코드에서 테스트 코드를 추가합니다.
/// 디버깅하기 위해 추가한 코드
if (Environment.UserInteractive)
{
FinalService service = new FinalService();
service.TestStartupAndStop(args);
}
/// 여기까지
else
{
ServicesToRun = new ServiceBase[]
{
new FinalService()
};
ServiceBase.Run(ServicesToRun);
}
- 서비스 클래스에 TestStartupAndStop 매서드를 구현합니다.
public void TestStartupAndStop(string[] args)
{
this.OnStart(args);
Program.FileLogger.Debug("TestStartupAndStop");
Console.ReadLine(); /// 콘솔 창에서 사용자 입력을 기다립니다.
this.OnStop();
}
댓글
댓글 쓰기