Ek werk met 'n paar kode dat iemand aan my oorhandig vir 'n timer werk. Hy het nie die werklike funksie aktivering kode so ek moes dit om te skryf, van die kursus. Ek het voordeel van Andrew Connell se beroemde blog boodskap oor die onderwerp.
Ek gebruik Visual Studio 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Object verwysing nie ingestel na 'n geval van 'n voorwerp. "
Ek was sy kode te letterlik. Ek was bestekopname die funksie na die vlak van die web-program, soos aangedui:
As 'n gevolg, die eienskappe wat aan die ontvanger gestuur word, is van die web-program, nie 'n webwerf versameling. Op die ou end, die kode lyk soos hierdie:
openbare ignoreer nietig FeatureActivated(SPFeatureReceiverProperties eienskappe)
{// Doen nie die volgende web artikels scoped funksies, dit lei tot wanhoop
// SPSite webwerf = properties.Feature.Parent as SPSite;SPWebApplication wa = properties.Feature.Parent as die SPWebApplication;
indien (wa == null) gooi nuwe Uitsondering("Webapp2 is leeg.");
foreach (SPJobDefinition werk in wa.JobDefinitions)
{probeer
{
indien (job.Name == List_JOB_NAME)job.Delete();
}
vang (Uitsondering e)
{
gooi nuwe Uitsondering("Merker 2");
} // vang uitsondering e
}// installeer die werk
WeatherForecastTimerJob weatherForecastTimerJob =
nuwe WeatherForecastTimerJob(List_JOB_NAME, wa);SPMinuteSchedule skeduleer = nuwe SPMinuteSchedule();
schedule.BeginSecond = 0;
schedule.EndSecond = 59;
schedule.Interval = 5;
weatherForecastTimerJob.Schedule = skedule;
weatherForecastTimerJob.Update();}
Die sleutel wegneem-is dat wanneer die funksie is scoped aan 'n web artikels, die SPFeatureReceiverProperties wat SharePoint gaan jou funksie ontvanger web artikels vlak parameters. Andrew se ou blog inskrywing aanvaar dit is scoped aan die werf versameling.
</einde>
Volg my op Twitter http://www.twitter.com/pagalvin