Я працюю з кодом, що хтось передав мені для завдання таймера. Він не забезпечив фактичні особливості код активації, так що мені довелося записувати це, Звичайно. Я скористався Ендрю Коннелл знаменитий блогу на цю тему.
Я використовую Visual Studio 2010 і розгортання зберігається в іншому випадку з помилкою "Сталася помилка під час розгортання кроці"Додати рішення": Об'єкта не задана посилання на екземпляр об'єкта."
Я приймав його код занадто буквально. Я була області видимості функції на рівні веб-застосунку, як показано:
У результаті, властивості, які надсилаються до ресивера є від веб-додатків, не колекції сайтів. Врешті-решт, код має такий вигляд::
громадськість перевизначити порожнеча FeatureActivated(Властивості SPFeatureReceiverProperties)
{// Не виконувати такі дії з можливостями web app в межах, Це призводить до розпачу
// SPSite сайту = властивості.Feature.Parent як SPSite;SPWebApplication ва = властивості.Feature.Parent як SPWebApplication;
Якщо (WA = = null) кинути нових виняток("webapp2 не визначено".);
foreach (SPJobDefinition роботу в wa.JobDefinitions)
{Спробуйте
{
Якщо (роботу.Ім'я = = List_JOB_NAME)роботу.Видалити();
}
зловити (Виняток e)
{
кинути нових виняток("маркер 2");
} // зловити винятком e
}// встановити роботу
WeatherForecastTimerJob weatherForecastTimerJob =
нові WeatherForecastTimerJob(List_JOB_NAME, WA);Розклад SPMinuteSchedule = новий SPMinuteSchedule();
розклад.BeginSecond = 0;
розклад.EndSecond = 59;
розклад.Інтервал = 5;
weatherForecastTimerJob.Schedule = розклад;
weatherForecastTimerJob.Update();}
Ключ винос в тому, що коли функцію із областю на веб-додаток, SPFeatureReceiverProperties, що SharePoint проходить в ресівер функція має web app рівня параметрів. Старий блог на вступ Андрія припускає, що він призначений для колекції сайтів.
</кінець>
Йди за мною на Twitter в http://www.twitter.com/pagalvin