이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 36585|회답: 3

[ASP.NET] C#은 작업을 정기적으로 실행하는 윈도우 서비스입니다

[링크 복사]
게시됨 2019. 4. 27. 오후 5:56:09 | | | |


머리말

이전 Windows 작업 스케줄러 관련 글에 이어, 이 글에서는 Windows 서비스 생성 과정을 기록할 것입니다.
환경 및 도구

>윈도우 10 시스템

>VS 2017

문자 메시지

1: 새로운 솔루션을 만들고 Windows 서비스를 만드세요. 이름은 "WindowsServiceDemo.exe






2: "Service1.cs" 파일을 더블 클릭한 후 빈 공간을 우클릭 > "설치 프로그램 추가"를 선택하세요.







3: 생성된 두 컴포넌트에서 "serviceProcessInstaller1" 컴포넌트를 클릭하고, 속성 양식에서 "Account" 계정 유형을 "LocalSystem"으로 설정하세요.





4: 생성된 두 컴포넌트에서 속성 폼에서 "serviceInstaller1" 컴포넌트를 클릭하고, 해당 속성을 설정한 후 저장하세요.




5: "Service1.cs"을 우클릭하여 "코드 보기"> 선택합니다.






6: 해당 메서드에서 처리 로직을 작성합니다. OnStart() 메서드: Windows 서비스가 시작될 때 입력되는 메서드를 의미합니다. OnStop(): 이름에서 알 수 있듯이, 서비스가 중단될 때 이 방법으로 진입합니다. 우리는 프로그램이 일반 성관계 시 로직을 처리할 수 있도록 타이머를 작성할 수 있습니다.






7: 두 개의 메모장 파일을 만들고, 접미사 이름이 각각 "Install.bat"와 "Uninstall.bat"로 명명하고 수정합니다. 참고: 접미사 이름은 .bat입니다. 프로젝트 안에 붙여넣으세요. 그리고 속성을 "로컬 복제"로 변경하세요.



8: 방금 만든 두 파일은 서비스 설치와 삭제용입니다. 이제 이 두 파일에 배치 코드를 쓰고 저장하세요.
"Install.bat" 파일을 열고 다음 코드를 작성하세요
참고: "WindowsServiceDemo.exe"는 방금 생성된 exe 프로그램입니다. "AServiceTest"는 "serviceInstaller1" 컴포넌트에 설정된 "ServiceName"입니다.

"Uninstall.bat" 파일을 열고 다음 코드를 작성하세요


9: F6가 생성합니다. 프로젝트 "bin\Debug" 디렉터리에 있습니다. "Install.bat"을 우클릭해 > "관리자 권한으로 실행"을 선택하세요.



서비스 설치가 완료되면, "Log.txt" 파일이 10초마다 한 줄씩 데이터를 쓰는 것을 볼 수 있습니다.


설치된 서비스들을 볼 수 있습니다.
실행 – "services.msc"를 입력> 입력합니다.



지금 서비스 중지. "Uninstall.bat"을 우클릭 > "관리자 권한으로 실행하기"를 선택하세요.



서비스가 삭제된 후에. "Log.txt" 파일에도 데이터 한 줄이 기록되어 있음을 알 수 있습니다.



#윈도우 서비스 디버깅

Windows 서비스는 F5, F10 디버깅으로 직접 시작할 수 없습니다. 그렇다면 이상 현상이 있으면 프로그램을 어떻게 디버깅하나요?
1: 우선 관리자를 사용해 "Install.bat" 파일을 실행하고 프로그램이 먼저 실행되도록 하세요.

2: VS로 돌아가 메뉴 바에서 "디버그"를 선택> "프로세스에 첨부"를 선택하세요.





3: 팝업 양식에서 "모든 사용자의 프로세스 보기"를 체크하고, 생성된 .exe 애플리케이션을 찾아 "첨부"를 클릭합니다.




4: 메서드의 포인트를 끊어, 일정 시간 실행되면 디버깅을 트리거할 수 있게 합니다.



에필로그

윈도우 서비스 디버깅은 매우 번거로운데, 때때로 프로그램이 문제가 생겨 서비스가 시작되지 않아 디버깅이 더 어려워집니다. 일반적으로 윈도우 서비스를 작성할 때는 콘솔 애플리케이션이 함께 제공됩니다. 콘솔 애플리케이션에서 디버깅한 후 Windows 서비스로 옮기세요. 다음 주제에서는 Windows 서비스를 만드는 더 간단한 방법을 설명할 것입니다.


참고: 두 프로그램이 실행하거나 삭제한 배치 파일은 관리자 상태로 실행되어야 합니다. 그렇지 않으면 틀릴 것입니다.









이전의:빅데이터 공유를 위한 공통 알고리즘 (응용)
다음:C# 예약 실행 작업을 위한 Topshelf 사용
게시됨 2019. 5. 8. 오전 10:59:16 |
공유해줘서 고마워요, 딱 맞춰서 보내주세요
게시됨 2020. 6. 22. 오후 2:04:33 |
이 실수는 항상 신고하세요
 집주인| 게시됨 2020. 9. 7. 오후 3:21:59 |
awclovelin 2020-6-22 14:04에 게시됨
이 실수는 항상 신고하세요

실행 중인 명령어가 잘못되었고, 이 서비스가 설치되어 있지 않습니다. 명령줄을 탭해서 설치하신다면, 제 다음 글을 참고하시면 됩니다.
C# 예약 실행 작업을 위한 Topshelf 사용
https://www.itsvse.com/thread-7503-1-1.html

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com