Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 7589

SharePoint 2013 Custom Timer Job Failed - Object reference not set to an instance of an object

$
0
0

I have not been able to determine why my custom timer job is failing.  I am able to run the Execute() method from a button click, but not via the timer job.

Here is the error:

Here is my code for FileUploadTimerJob.cs:

public class FileUploadTimerJob : SPJobDefinition
    {
        public FileUploadTimerJob() : base() { }
        public FileUploadTimerJob(string jobName, SPService service, SPServer server, SPJobLockType targetType)
            : base(jobName, service, server, targetType)
        {
            this.Title = "File Upload Timer Job";
        }
        public FileUploadTimerJob(string jobName, SPWebApplication webapp)
            : base(jobName, webapp, null, SPJobLockType.ContentDatabase)
        {
            this.Title = "File Upload Timer Job";
        }
        public override void Execute(Guid targetInstanceId)
        {
            UploadDocuments();
            OrganizeDocuments();
        }
}

And here is the code for the Feature Event Receiver:

public class FileUploadTimerJobFeatureEventReceiver : SPFeatureReceiver
    {
        const string JobName = "New Task Timer";
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite;
            // make sure the job isn't already registered
            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
            {
                if (job.Name == JobName)
                    job.Delete();
            }
            // install the job
            FileUploadTimerJob job1 = new FileUploadTimerJob(JobName, site.WebApplication);
            SPMinuteSchedule schedule = new SPMinuteSchedule();
            schedule.BeginSecond = 0;
            schedule.EndSecond = 59;
            schedule.Interval = 5;
            job1.Schedule = schedule;
            job1.Update();
        }
        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite;
            // delete the job
            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
            {
                if (job.Name == JobName)
                    job.Delete();
            }
}

Any help would be greatly appreciated.

Thanks.


Jason


Viewing all articles
Browse latest Browse all 7589

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>