Таймер роботу FeatureActivated та сферу функція

Я працюю з кодом, що хтось передав мені для завдання таймера.  Він не забезпечив фактичні особливості код активації, так що мені довелося записувати це, Звичайно.  Я скористався Ендрю Коннелл знаменитий блогу на цю тему.

Я використовую Visual Studio 2010 і розгортання зберігається в іншому випадку з помилкою "Сталася помилка під час розгортання кроці"Додати рішення": Об'єкта не задана посилання на екземпляр об'єкта."

Я приймав його код занадто буквально.  Я була області видимості функції на рівні веб-застосунку, як показано:

image

У результаті, властивості, які надсилаються до ресивера є від веб-додатків, не колекції сайтів.  Врешті-решт, код має такий вигляд::

громадськість перевизначити порожнеча 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

Дати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *