2011-12-02 3 views
2

ASP.Net mvc 3 C#을 사용하여 웹 응용 프로그램을 만듭니다. x 분 간격으로 실행해야하는 서비스가 있습니다. 또한이 서비스에 대해 일부 설정을 업데이트하거나 변경할 수 있습니다.24 시간 가동중인 서비스

내 서비스가 서버에서 실행되도록 유지하고 ASP.Net MVC 인터페이스 (웹)를 사용하여 원격으로 중지/실행하는 데 사용해야하는 기술이 확실하지 않습니다.

매 x 분마다 필요한 작업을 실행하는 타이머가있는 숨겨진 서비스 나 응용 프로그램이 있다고 가정합니다. 내 첫 번째 큰 닷넷 프로젝트 :) 같이

모든 제안을

는 전용 서버가있는 경우

답변

1

를 호출 할 경우 여기를 참조하십시오. 이 서버이며 그 위에 충분한 권한이있는 경우, 다음 중 하나를 수행 할 수 있습니다 :

  1. 가 깨어나서 웹 응용 프로그램에 HTTP 요청을 실행 거기에 타이머를 가지고 Windows 서비스를 작성합니다.

  2. 웹 응용 프로그램을 호출하기 위해 VB 스크립트 (또는 비슷한)를 실행하는 예약 된 작업을 설정하십시오.

타이머를 사용하는 웹 응용 프로그램에서 배경 스레드를 사용하는 것이 좋습니다. 그렇게 할 수는 있지만 (http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+haacked+%28you%27ve+been+HAACKED%29) 웹의 앱 도메인이 다운되면 본질적으로 안전하지 않습니다.

ISP에 배포하거나 공유 호스팅을하거나 다른 이유로 웹 응용 프로그램 만 배포 할 수있는 경우에는 웹 응용 프로그램을 호출하는 다른 곳에서 실행되는 스크립트가 있어야합니다. 대부분의 ISP는 공유 호스팅에서도 예약 된 작업을 설정할 수 있습니다. 그런 다음 간단한 VB 스크립트를 cgi-bin에 업로드 할 수 있습니다. 예를 들어 웹 앱 (http://chriscant.phdcc.com/2011/05/scheduled-task-ping-for-plesk-in.html)을 호출합니다.

나는 마지막 해결책을 직접 구현하려고합니다.

0

, 당신은 Windows 서비스로 갈 수 있습니다 감사합니다. 그렇지 않으면 우리는 웹 서비스를 만들 수 있습니다. 이 웹 서비스는 특정 시간 간격으로 자동으로 실행되는 타이머에서 호출됩니다. 이 타이머는 global.asax 파일을 통해 지정된 application_start 이벤트에서 시작해야합니다.

0

XML 파일이나 데이터베이스에서 설정을 읽는 콘솔 응용 프로그램을 매 x 분마다 실행해야하는 응용 프로그램을 만들었습니다. Asp.NET MVC 응용 프로그램에서 설정을 조정할 수 있습니다. x 분마다 콘솔 응용 프로그램을 시작하기 위해 항상 실행되는 Windows 서비스가 필요합니다. 또한 간격 및 사용 가능한 속성은 Asp.NET 응용 프로그램을 통해 설정할 수 있습니다.

0

이미 제안 된대로 콘솔을 개발할 수 있습니다. 그러나 쿼리를 조작하는 방법에 대한보다 자세한 정보가 있습니다. 고객이 어떤 종류의 스케줄러를 가지고 있습니까? 일반적으로 스케줄러에는 운영 측면을 관리 할 수있는 자체 웹 인터 페이스 또는 API가 있습니다.

당신은 당신이 당신에 배포 환경을 통해 무엇을 제어에 따라 Windows Services via .Net

1

Quartz.NET 사이트에 "Quartz.NET은 가장 작은 응용 프로그램부터 대규모 엔터프라이즈 시스템까지 사용할 수있는 완벽한 기능의 오픈 소스 작업 스케줄링 시스템입니다."라고 사용할 수 있습니다.