Tidtaker jobb FeatureActivated og funksjonen omfang

Jeg har jobbet med noen kode som noen ga meg for en tidtakerjobb.  Han hadde ikke gitt faktiske funksjonen aktiviseringen koden så jeg måtte skrive det, selvfølgelig.  Jeg tok fordel av Andrew Connell berømte blogginnlegg om emnet.

Jeg bruker Visual Studio 2010 og distribusjon holdt mislykkes med en feil "Feil oppstod i distribusjon trinn"Legg til løsning": Objektreferanse er ikke satt til en forekomst av et objekt."

Jeg tok hans koden for bokstavelig talt.  Jeg var scoping funksjonen til webprogramnivå, som vist:

image

Som et resultat, egenskaper som sendes til mottakeren er fra web-applikasjon, ikke en områdesamling.  Til slutt, koden ser slik ut:

public override ugyldige FeatureActivated(SPFeatureReceiverProperties egenskaper)
{

    // Ikke gjøre følgende med web app scoped funksjoner, Det fører til fortvilelse Smil
    // SPSite-området = egenskaper.Feature.Parent som SPSite;

    SPWebApplication wa = egenskaper.Feature.Parent som SPWebApplication;

    Hvis (WA == null) kaste nytt unntak("webapp2 er null.");

    foreach (SPJobDefinition jobb i wa.JobDefinitions)
    {

        Prøv
        {
            Hvis (jobb.Navnet == List_JOB_NAME)

                jobb.Slette();
        }
        fange (Unntak-e)
        {
            kaste nytt unntak("markør 2");
        } // fange unntakelsen e
    }

    // installere jobben

    WeatherForecastTimerJob weatherForecastTimerJob =
        nye WeatherForecastTimerJob(List_JOB_NAME, WA);

    SPMinuteSchedule tidsplan = ny SPMinuteSchedule();
    planlegge.BeginSecond = 0;
    planlegge.EndSecond = 59;
    planlegge.Interval = 5;
    weatherForecastTimerJob.Schedule = Planlegg;
    weatherForecastTimerJob.Update();

}

Nøkkelen for take-away er at når funksjonen er begrenset til en web-app, SPFeatureReceiverProperties som SharePoint sender til funksjon mottakeren har web app nivå parametere.  Andrews gammel bloggoppføring forutsetter at det er begrenset til områdesamlingen.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *