2013-09-25 1 views
2

비 기술적 인 사용자가이 문제를 업데이트 할 수 있기를 원하기 때문에 asp.net-mvc 사이트 (새 작업 설정, 기존 작업 빈도 업데이트 등)에서 예약 된 작업 모음을 관리 할 수 ​​있는지 확인하려고합니다. info (우리는 사람들이 웹 서버에 직접 로그인하는 것을 피하고자합니다.)asp.net-mvc 사이트 또는 다른 원격 옵션에서 Windows 스케줄러를 관리 할 수 ​​있습니까?

일반적으로 C#에서이 작업을 수행 할 수 있지만 권한 부여에 대해서는 확실하지 않으므로 관리가 가능합니다. 웹 앱을 통해. 사람들이 특정 상자에 가지 않고이 작업을 수행 할 수 있도록 웹에서의 불가하면

, 다른 "원격"옵션이 있습니다? \ SysWOW64와 그냥 참고 \ 귀하의 웹 응용 프로그램에 \ Windows 및 당신에게 증명하기 위해이

using TaskScheduler; 

namespace Test 
{ 
    public class Class1 
    { 
     public void Test() 
     { 
      var taskService = new TaskScheduler.TaskScheduler(); 
      taskService.Connect(); 

      var rootFolder = taskService.GetFolder(@"\"); 

      var registeredTasks = rootFolder.GetTasks(0); 
      foreach (var registeredTask in registeredTasks) 
      { 

      } 
     } 
    } 
} 

처럼 사용

답변

8

예, 그냥 C에서 찾을 수 있습니다 taskschd.dll을 사용할 수 있습니다 그 여기 실행하는 당신은 내가 내 작업 스케줄러에서 5 개 항목을 잡고 내 컴퓨터에서 볼 수 있듯이 웹 페이지

enter image description here

에서 호출 실행 코드의 스크린 샷이다.

은 BTW 나는 내 블로그에 당신을 위해 전체 기사를 만든 방법 :

  1. 만들기/업데이트 예약 된 작업
  2. 삭제 예약 된 작업
모든 예약 된 작업 가져 오기

여기에 http://macaalay.com/2013/10/02/programmatic-management-of-scheduled-task/

1

Quartz.net을 사용하고 싶습니다. Windows 작업 스케줄러보다는 나에게 좀 더 유연 해 보이지만 아이디어는 두 가지 유형의 스케줄러 모두에서 작동 할 수 있습니다. 다음 사례를 살펴보고 아이디어를 얻으십시오. 아마도

  • WCF 추가 및 작업에 대한 작업을
  • 스토어 정보를 제거 같은 일반적인 작업을 수행 할 수있는 방법이됩니다 ASP-NET-MVC 응용 프로그램에서 WCF 서비스를 소비
  • 은 WCF 만들기 영구 저장소 (db, no-sql, xml 등) 또는 캐시를 통해
  • 만들기 데이터베이스를 읽고 창 상자에 작업을 생성
  • 당신은 (석영)에서 작업을해야합니다,이 작업은 FIFO 동작을 매 X 분 또는 y 시간
  • 를 사용하여 정보를 실행하고 수행 할 수 작업 폼 입력에 사용자를 대상으로 한 ASP-NET-응용 프로그램의 형태는 WCF 서비스에

편집 정보를 보내드립니다 : 당신이 마음에 다음이 필요합니다 : 은 WCF 당신에게 줄 것이다 웹 응용 프로그램 작업을 처리 할 "상태"가 필요한 상태 인 quartz는 작업을 처리하여 데이터베이스를 읽고 새로운 작업 (석영 또는 windows sche duler)이며 웹 양식은 이러한 작업을 처리하기위한 프론트 엔드에 불과합니다.

은 쉽게 couls 석영에서의 작업 설정 등 :

public class ReadDBJob : IJob 
{ 
    public void Execute(IJobExecutionContext context) 
    { 
     // Do your work to read the database 
     // and create the tasks that you need 

    } 
}