2009-07-10 2 views
0

다음 작업을 수행해야하며 입력 사항을 얻을 수 있는지 궁금합니다. 매일 밤 특정 위치 (ftp 서버의)에 파일이 생성됩니다. 내가해야 할 일은이 파일을 다운로드하고 웹 서비스를 통해 원격 SQL 서버로 가져 오는 것입니다. 또한 수동으로 언제든지 가져 오기 프로세스 (파일 다운로드 및 서버로 보내기) 기능을 다시 수행 할 수 있어야합니다. Windows 서비스는이 작업에 유용 할 것이라고 생각했지만 언제든지 수동으로 가져 오기 프로세스를 다시 실행할 수있는 방법을 알지 못합니다. 아무도 이것과 비슷한 것을 해냈습니다. 그렇다면 사용하신 기술은 무엇입니까?Windows 서비스와 관련된 몇 가지 지침이 필요합니다.

감사

+1

Windows 서비스는 일정한 간격으로 실행해야 할 때까지 잔인한 행동입니다. 대신 일정 작업을 수행하도록 제안합니다. –

+1

정기적 인 간격으로 실행해야 할 필요가 있다고해도 Windows 서비스는 과도한 것입니다 . 일정한 간격으로 실행되도록 예약 된 작업을 설정할 수 있습니다. – adrianbanks

답변

4

파일에 대해 10 분마다 또는 무언가를 폴링하려는 경우가 아니면 Windows 서비스가 약간 과잉입니다. 그렇지 않으면 실제로 예약 된 작업을 사용해야합니다.

Windows 서비스로 이동하는 경우 simple Custom Command을 폴링하도록 할 수 있습니다. Remoting, IPC 등도 작동 할 수 있지만 상당히 무겁습니다.

+0

예약 된 작업을 만드는 것이 정말 새로운 기능입니다. Windows 응용 프로그램을 만든 다음 작업을 타이머 또는 다른 것으로 실행해야합니까? 이것에 대한 더 많은 정보가 도움이 될 것입니다. 감사 – zSynopsis

2

Service Controller 클래스가 당신에게 도움이 될 수 있습니다. 별도의 "프런트 엔드"앱에서 실행중인 서비스 내에서 명령을 실행할 수 있습니다.

0

SyncBackSE과 같은 것을 사용하여 FTP를 통해 파일을 다운로드 한 다음 가져 오기를 수행하기 위해 After 이벤트를 실행할 프로필을 만들 수 있습니다 (실행하려는 내용을 구체적으로 지정할 수 있음). 이 작업은 일정에 따라 수행 할 수 있지만 (Windows 예약 된 작업을 통해 실행) 수동으로 실행할 수도 있습니다 (프로필을 선택한 다음 실행). 실제로 프로그래밍이 필요하지는 않습니다.이 질문에 대한 서버 관리자의 답변이 더 많을 것 같습니다.

0

데스크톱 응용 프로그램에서 Windows 서비스와 대화하고 싶으면 (수동 실행을 지시하기 위해) 명명 된 파이프를 사용하는 것이 표준 방법입니다. 그들은 구현하기가 매우 쉽고, 서비스와 대화 할 때 필요한 세션/데스크탑 경계를 넘는 파이프입니다.

0

예약 된 작업을 통해이 작업을 수행 할 수 있다는 것에 동의합니다. 그러나 정말로 Windows 서비스를 대신 사용하려면 "MyService.exe -onetime"과 같은 명령 줄 매개 변수로 프로그램을 실행할 수 있습니다. 그런 다음 Main 함수에서 해당 명령 줄 매개 변수가 포함되어 있는지 확인할 수 있습니다. 그렇다면 일반적인 코드를 건너 뛰고 대신 가져 오기를 실행할 수 있습니다.