Timer Job FeatureActivated En Feature Scope

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:

image

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 Smile
    // 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>

Skryf in op my blog.

Volg my op Twitter http://www.twitter.com/pagalvin

Laat 'n antwoord

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk *