0

이 기능은 사이트 모음 수준에서 범위가 지정됩니다. 기능이 활성화되면 웹 응용 프로그램에서 타이머 작업이 실행될 사이트 모음 URL을 포함하는 일반 이름으로 만들어집니다. 이론적으로 사이트 모음에서 기능을 비활성화하면 해당 기능이 실행되지 않지만 다른 사이트 모음에서 활성화 된 다른 타이머 작업 기능은 계속 실행됩니다.SharePoint 타이머 작업이 실행 중이지만 실행 중이 아닙니다.

using Microsoft.SharePoint 
using Microsoft.SharePoint.Administration 

class DailyAlerts() : SPJobDefinition 
{ 
    public DailyAlerts() : base() { } 

    public DailyAlerts(string jobName, SPWebApplication webApp) : base(jobName, webApp, null, SPJobLockType.Job) 
    { 
     this.Title = jobName; 
    } 

    public override void Execute(Guid targetInstanceId) 
    { 
     // CHANGE THE SITE COLLECTION'S ROOT WEB SITE DESCRIPTION TO THE CURRENT TIME 
    } 
} 

솔루션을 배포하고 하나의 사이트 모음에서 활성화 한 후에는 작업이 사용자 지정 코드를 실행하지 않았습니다. 이 도움말은 다음을 해결하는 데 도움이되었습니다. http://www.wahidsaleemi.com/2009/08/sharepoint-timer-jobs-not-running/. SP 타이머 서버를 중지하고 캐싱 된 XML 파일을 삭제 한 다음 서비스를 시작하면 활성화 된 사이트 수집 타이머 작업이 완벽하게 실행됩니다.

그러나 다른 사이트 모음에서 사용자 지정 타이머 기능을 활성화하면 해당 사이트 모음의 타이머 작업이 실행되지 않는 것과 동일한 초기 문제가 발생합니다. 첫 번째 타이머 작업 (게시 취소 캐시)은 여전히 ​​정상적으로 작동합니다.

특정 사용자가 제어 기능을 켜거나 끌 수 있기 때문에 사용자에게 불만을 줄 수있는 방법을 알 수 있습니다. 새 사이트 모음을 만들 때 기능을 활성화해야하지만 캐시가 지워질 때까지 실행되지 않습니다. 내가 여기서 무엇을 놓치고 있니?

미리 감사드립니다.

+0

동의어는 항상 올바르게 작동합니다. – detailCode

답변

1

서비스는 powershell을 사용하여 재설정 할 수 있습니다. 기능에 대한 설명을 넣으면 기능의 모든 기능이 다음 날까지 분명 해지지 않을 것입니다.

팜 또는 웹 앱 수준에서 속성 가방 변수를 업데이트하도록 설정하십시오.

변수를 검색하기 위해 powershell 스크립트를 작성하십시오. 변수가 참인 경우 스크립트를 실행하고 다른 사람에게 다시 시작을 알리십시오. 분명히 원래 변수로 다시 설정하십시오. 이 스크립트를 SP 서버 중 하나의 작업 스케줄러에 연결하여 백업 및 검색 작업이없는 밤에 한 번 실행하십시오. 즉, 수동으로 작업 스케쥴러를 통해 작업을 수행 할 수 있어야합니다.

이것은 프로세스가 자동화되어 있지만 필요시에만 타이머 작업을 다시 시작해야한다는 것을 의미합니다.

건배 TrueZ

+1

이것은 좋은 해결책이지만이 프로젝트에서는 작동하지 않습니다. 상황은 실시간이어야합니다. 기능 스쿠프가 사이트에서 웹 애플리케이션으로 변경되었습니다. 웹 응용 프로그램 루트 웹에서 타이머 작업을 실행할 사이트 모음을 지정하는 사용자 지정 목록을 유지 관리하고 있습니다. 제작 과정에서 타이머 작업이 많은 수의 사이트 모음에서 시간 제한을 초과하지 않기를 바랍니다. – detailCode

+1

당신의 요구 사항을 고려할 때 나쁜 방법이 아닙니다. 타임 아웃을하면 오류를 잡아서 공유받은 편지함에 전자 메일을 기록 할 수 있으므로 사용자를 기다리지 않고 사전 대응할 수 있습니다 당신에게 알리기 위해 :) – Truezplaya