Timer Job FeatureActivated At Feature Saklaw

Ako ay nagtatrabaho sa ilang mga code na kamay ang isang tao sa akin para sa isang trabaho timer.  Hindi niya ibinigay ang aktwal na tampok ng activation code kaya ako ay sumulat ito, siyempre.  Ininom ko ang bentahe ng Sikat na blog post ng Andrew Connell sa paksa.

Ako gumagamit ng Visual Studio 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Object reference hindi nakatakda sa isang halimbawa ng isang bagay. "

Ako ay pagkuha ng kanyang code masyadong literal.  Ako ay scoping ang tampok sa antas ng web application, tulad ng ipinapakita:

image

Bilang isang resulta, ang mga katangian na ay ipinadala sa ang receiver ay mula sa mga web application, hindi isang koleksyon ng site.  Sa katapusan, ang code ay ganito ang hitsura:

pampublikong override walang bisa ay FeatureActivated(SPFeatureReceiverProperties katangian)
{

    // Huwag gawin ang mga sumusunod sa web app scoped tampok, ito ay humantong sa kawalan ng pag-asa ngiti
    // SPSite site = properties.Feature.Parent bilang SPSite;

    SPWebApplication wa = properties.Feature.Parent sa bilang SPWebApplication;

    kung (wa == null) magtapon ng bagong Exception("webapp2 is null.");

    foreach (SPJobDefinition trabaho sa mga wa.JobDefinitions)
    {

        sumubok
        {
            kung (job.Name == List_JOB_NAME)

                job.Delete();
        }
        abutin (Exception e)
        {
            magtapon ng bagong Exception("marker 2");
        } // mahuli exception e
    }

    // install ng trabaho

    WeatherForecastTimerJob weatherForecastTimerJob =
        bagong WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule iskedyul = bagong SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 5;
    weatherForecastTimerJob.Schedule = iskedyul;
    weatherForecastTimerJob.Update();

}

Ang mga pangunahing tumagal-layo ay na kapag ang tampok ay scoped sa isang web app, ang SPFeatureReceiverProperties na ipinapasa ng SharePoint sa iyong tampok na receiver ay may web app parameter antas.  Lumang Andrew blog entry Ipinagpapalagay ang scoped sa collection site.

</dulo>

Mag-subscribe sa aking blog.

Sundin ako sa Twitter sa http://www.twitter.com/pagalvin

-Iwan ng sagot

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *