リストを作成するカスタム タイマー サービスを作成しました。FeatureActivated イベントを使用して分単位でスケジュールされます。ソリューションをグローバルに展開できました。しかし、私のタイマージョブは実行されていません。前回の実行時間を表示 N/A。解決策はありますか?
私の実行方法
public override void Execute(Guid targetInstanceId)
{
ClientContext clientContext = new ClientContext("http://mymachine:0909");
Web site = clientContext.Web;
ListCreationInformation listCreationInfo = new ListCreationInformation();
listCreationInfo.Title = "Test Mailer List";
listCreationInfo.TemplateType = (int)ListTemplateType.GenericList;
List list = site.Lists.Add(listCreationInfo);
Field field1 = list.Fields.AddFieldAsXml(
@"<Field Type='Choice'
DisplayName='Category'
Format='Dropdown'>
<Default>Specification</Default>
<CHOICES>
<CHOICE>Specification</CHOICE>
<CHOICE>Development</CHOICE>
<CHOICE>Test</CHOICE>
<CHOICE>Documentation</CHOICE>
</CHOICES>
</Field>", true, AddFieldOptions.DefaultValue);
Field field2 = list.Fields.AddFieldAsXml(
@"<Field Type='Number'
DisplayName='Estimate'/>", true, AddFieldOptions.DefaultValue);
clientContext.ExecuteQuery();
}
そしてイベントレシーバークラス
public class Feature1EventReceiver : SPFeatureReceiver
{
public const string jobName = "BdayTimer";
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
DeleteJob(webApp.JobDefinitions);
TimerJobTest myJob = new TimerJobTest(webApp);
SPMinuteSchedule schedule = new SPMinuteSchedule();
schedule.BeginSecond = 0;
schedule.EndSecond = 59;
schedule.Interval = 1;
myJob.Schedule = schedule;
myJob.Update();
}
// Uncomment the method below to handle the event raised before a feature is deactivated.
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPWebApplication webApp = properties.Feature.Parent as SPWebApplication;
DeleteJob(webApp.JobDefinitions);
}
public void DeleteJob(SPJobDefinitionCollection job1)
{
foreach (SPJobDefinition job in job1)
{
if (job.Name.Equals(jobName))
job.Delete();
}
}