He estat treballant amb algun codi que algú passava per a mi per a una feina del temporitzador. No havia proporcionà el codi d'activació present tret així havia d'escriure-ho, per descomptat. Jo aprofitava Entrada de blog famós de Andrew Connell sobre el tema.
Estic utilitzant Visual Studio 2010 i desplegament continuava fallant amb un error "Error ocorria al pas de desplegament"Afegeix solució": Referència objecte no definit com a una instància d'un objecte.»
Jo estava prenent el seu codi massa literal. Jo estava àmbit el tret el nivell d'aplicació web, com es Mostra:
Com a resultat, les propietats que s'envien a l'auricular són de l'aplicació web, no una col·lecció de llocs. Al final, el codi s'assembla a això:
públic invalidar FeatureActivated nul(Propietats SPFeatureReceiverProperties)
{// No facis el següent amb les característiques web app amb l'àmbit, Això condueix a la desesperació
// Lloc SPSite = propietats.Feature.Parent com SPSite;L'SPWebApplication wa = propietats.Feature.Parent com a el SPWebApplication;
Si (WA = = null) llançar nova excepció("webapp2 és nul".);
foreach (SPJobDefinition treball en wa.JobDefinitions)
{Provi
{
Si (feina.Nom = = List_JOB_NAME)feina.Suprimir();
}
trampa (E d'excepció)
{
llançar nova excepció("marcador 2");
} // agafar e d'excepció
}// instal·lar la feina
WeatherForecastTimerJob weatherForecastTimerJob =
WeatherForecastTimerJob nou(List_JOB_NAME, WA);SPMinuteSchedule horari = nova SPMinuteSchedule();
horari.BeginSecond = 0;
horari.EndSecond = 59;
horari.Interval = 5;
weatherForecastTimerJob.Schedule = horari;
weatherForecastTimerJob.Update();}
La clau per emportar és que quan el tret d'àmbit d'un app de webs, el que passa al seu auricular tret per SharePoint SPFeatureReceiverProperties ha paràmetres nivell de web app. Antiga entrada del bloc de Andrew assumeix que està ambientat a la col·lecció de llocs.
</final>
Follow me on Twitter http://www.twitter.com/pagalvin