본문 바로가기
프로그래밍/C#.NET

[Windows Service]개발

by Daily Investing 2012. 10. 19.
반응형

1. DBHMail -> (마우스우클릭)속성 -> 빌드 이벤트 
            - 빌드 전 이벤트 명령줄    : SC Stop DBHMail
            - 빌드 후 이벤트 명령줄    : SC Start DBHMail
                copy  $(TargetPath)  C:\Doms\Service\
                copy  $(TargetPath).config  C:\Doms\Service\
                SC Start Miracom.Doms.MailService

2. installutil.exe 등록/삭제
            - 등록 : C:\Users\seunggo>cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
                        C:\Windows\Microsoft.NET\Framework\v4.0.30319>installutil.exe
                        "E:\DBHMail\DBHMail\bin\Release\DBHMail.exe"

            - 삭제 : C:\Users\seunggo>cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
                       C:\Windows\Microsoft.NET\Framework\v4.0.30319>installutil.exe -u
                       "E:\DBHMail\DBHMail\bin\Release\DBHMail.exe"

3. 설치관리자 추가
            - Service1.cs[디자인] 화면 -> (마우스우클릭) 설치관리자 추가


4. 빌드시 에러발생 
            - 원인 : IBS.Web.Db 안에 DBManager 클래스를 이용하여 DBH DB에 접속하려고 하는데 계속
                        IBS.Web namespace 를 못찾음.(프로젝트도 추가하고, 참조에서 프로젝트 추가 해줬는데 계속
                        못찾음)
            - 해결 : 프로젝트에서 (WS.DBHMail) -> (마우스우클릭) 속성 ->  응용프로그램에서 대상프레임워크 
                        -> .NET Framework 4 로 변경 후 빌드하면 정상빌드 됨.
                        (기본 IBS Namespace 가 .NET Framework 4로 환경이 맞춰져 있으므로 새로운 프로젝트도 
                         응용프로그램 대상 프레임워크를 .NET Framework 4 로 맞춰준다.)

5. services.msc 에 등록된 window service 명 확인하기
            - 원인 : services.msc 에 installutil.exe 로 등록을 하면 내가 만든 솔루션명(WS.DBHMail) 이 아닌
                        service1 로 등록이 되어 있다.
            - 해결 : Service1.cs[디자인] 열린 상태에서 속성을 보면 ServiceName 속성이 있다. 여기를 내가 원하는 
                        service 명으로 바꿔주면 된다.
                        (Name) 값도 같이 바꿔줬음.
            - 해결 : 위 해결방법이 아님.
                        설치관리자를 추가하면 ProjectInstaller.cs 가 생기는데 그 파일(ProjectInstaller.cs[디자인]) 
                        더블클릭 -> serviceInstaller1 클릭 -> 속성 -> ServiceName 값 변경

6. MYTMCM DB Connection 시 null 에러
            - 원인 : MYTMCM 기존 DB 커넥션을 사용하여 연결하려고 하니 기존 Connectionstring 을 web.config 
                        에서 읽어오는데 이번에 만드는 window service 는 app.config 를 따로 가지고 있음. 
            - 해결 : web.config 의 내용을 app.config 에 넣어줘서 해결(전체 복사함)
                        DBH 의 web.config 의 DB connectionstring 이 일반적으로 사용된게 아니어서 일반적인
                        connectionstring 복사가 안되서 전체복사를 했음. 나중에 필요한 부분만 추출할 것

반응형