2012-03-21 2 views
0

사용자가 작업의 예외를 예약하도록 허용해야하는 웹 응용 프로그램을 만들고 있습니다. 작업을 예약하기 위해 다양한 스레드를 통과했지만 모두 알고있는 Windows 서비스를 사용하고 있습니다. 또한 예산 제약으로 인해 서버 시스템에 Visual Studio를 설치할 수 없습니다. asp.net 응용 프로그램의 백그라운드 스레드에서 스케줄러를 실행하는 메소드를 만드는 방법이 있습니까? 모든 코드 샘플은 큰 도움이 될 것입니다.asp.net에서 메서드 예외를 예약해야합니다.

+1

이외에도 내장 Windows 작업 스케줄러를 사용하여 IE를 시작 하시겠습니까? 이를 사용하여 페이지의 실행을 예약 할 수 있습니다. 전의. \ iexplore.exe % 1 kpcrash

답변

1

그건 방법이 아닙니다. 예약 된 작업이 필요한 경우 콘솔 응용 프로그램을 만들어 Windows 작업 스케줄러를 사용하여 실행해야합니다.

작업이 수행되어야하는 페이지에 대한 링크가 포함 된 이메일을 사용자에게 보내는 응용 프로그램을 만들 수 있습니다.

+0

답장을 보내 주셔서 감사합니다.하지만 현재 진행중인 것은 현재 프로젝트의 향상입니다. 내 현재 응용 프로그램은 작업을 예약해야하는 웹 응용 프로그램입니다. –

+0

불행히도 웹 응용 프로그램에서 예약 된 작업을 만드는 것은 많은 의미를 갖지 않습니다. –

1

ASP.NET은 네트워크에서 요청을 처리하기위한 것입니다. 그 안에있는 모든 것들은 그것에 맞추어 져 있습니다. 예, 백그라운드 작업을 실행할 수는 있지만 여러 가지주의 사항이 있습니다.

예를 들어 IIS는 일정 기간 동안 요청을받지 못하면 ASP.NET 응용 프로그램을 종료합니다. 또한 파일 시스템에 대한 변경 사항을 감지하면 경고없이 응용 프로그램이 재시작 될 수 있습니다. 따라서 실행중인 코드가 중단됩니다.

그렇다고해서이 문제를 해결할 수는 없지만 실제로는 예약 된 작업 실행에 가장 적합하지 않습니다.

가장 좋은 방법은 데이터베이스에 작업의 세부 정보를 저장 한 다음 항상 실행되는 단일 Windows 서비스 (실제로 그렇게하기가 어렵지도 않고 많은 예제가 있음) 또는 콘솔 응용 프로그램 (권장대로) 수동으로 정기적으로 실행되도록 예약하여 이러한 작업을 실행합니다.

Quartz.NET과 같은 라이브러리가 이러한 작업을 예약/실행하는 데 도움이 될 수 있습니다.

관련 문제