I been working niektóre kodem, że ktoś przekazywany do mnie zadania czasomierza. Nie dostarczył kod aktywacyjny rzeczywistej funkcji co musiałem zapisywać go, Oczywiście. Ja wziąłem zaletą Andrew Connell słynnego blogu w przedmiot.
Korzystam z programu Visual Studio 2010 i wdrażania przechowuje z błąd "Wystąpił błąd podczas wdrażania krok 'Dodaj rozwiązanie': Odniesienia obiektu nie ustawiono instancję obiektu."
I miał jego kod zbyt dosłownie. Był do określania zakresów funkcji na poziomie aplikacji sieci web, jak pokazano:
W rezultacie, właściwości, które są wysyłane do odbiorcy są z aplikacji sieci web, nie zbioru witryn. W końcu, kod wygląda:
public override void FeatureActivated(Właściwości SPFeatureReceiverProperties)
{// Nie następujących funkcje o zakresie aplikacji sieci web, prowadzi to do załamywania rąk
// Witryny SPSite = właściwości.Feature.Parent jako SPSite;SPWebApplication wa = właściwości.Feature.Parent jako SPWebApplication;
Jeśli (wa == wartości null) Zgłoś wyjątek nowe("webapp2 jest zerowy.");
foreach (SPJobDefinition zadania w wa.JobDefinitions)
{Spróbuj
{
Jeśli (zadanie.Nazwa == List_JOB_NAME)zadanie.Usuń();
}
połów (E wyjątek)
{
Zgłoś wyjątek nowe("znacznik 2");
} // przechwycić wyjątek e
}// Zainstaluj zadania
WeatherForecastTimerJob weatherForecastTimerJob =
Nowy WeatherForecastTimerJob(List_JOB_NAME, wa);Harmonogram SPMinuteSchedule = nowe SPMinuteSchedule();
harmonogram.BeginSecond = 0;
harmonogram.EndSecond = 59;
harmonogram.Interwał = 5;
weatherForecastTimerJob.Schedule = harmonogramu;
weatherForecastTimerJob.Update();}
Take-away klucz jest, że gdy funkcja jest objęty zakresem do aplikacji sieci web, SPFeatureReceiverProperties, który SharePoint przekazuje do odbiornika funkcja ma parametry poziomu aplikacji sieci web. Andrzeja, starą blogu zakłada się, że jest objęty zakresem do zbioru witryn.
</koniec>
Follow me on Twitter wiek na http://www.twitter.com/pagalvin