FeatureActivated задания таймера И область компонента

Я работал с некоторыми кодом, который кто-то передал мне для задания таймера.  Он не предоставил код активации фактические функции, так что мне пришлось написать его, Конечно.  Я воспользовался Andrew Connell известного блога по этому вопросу.

Я использую Visual Studio 2010 и развертывания хранятся сбой с сообщением об ошибке «Произошла ошибка в шаге развертывания 'Добавление решения': Ссылка на объект не указывает на экземпляр объекта."

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

image

В результате, свойства, которые отправляются получателю, из веб-приложения, не семейства сайтов.  В конце концов, код выглядит следующим образом:

общественности переопределять void FeatureActivated(SPFeatureReceiverProperties свойства)
{

    // Не делайте следующее с областью действия приложения веб-, Это приводит в отчаяние Улыбка
    // Сайт SPSite = свойства.Feature.Parent как SPSite;

    SPWebApplication ва = свойства.Feature.Parent как SPWebApplication;

    Если (ва == null) нового исключения(«webapp2 — значение null».);

    по каждому элементу (SPJobDefinition работа в Вашингтон.JobDefinitions)
    {

        Попробуйте
        {
            Если (работа.Имя == List_JOB_NAME)

                работа.Удаление();
        }
        улов (Исключение e)
        {
            нового исключения(«маркер 2»);
        } // поймать исключение e
    }

    // установить задание

    WeatherForecastTimerJob weatherForecastTimerJob =
        новые WeatherForecastTimerJob(List_JOB_NAME, ва);

    Расписание SPMinuteSchedule = новый SPMinuteSchedule();
    расписание.BeginSecond = 0;
    расписание.EndSecond = 59;
    расписание.Интервал = 5;
    weatherForecastTimerJob.Schedule = расписание;
    weatherForecastTimerJob.Update();

}

Ключ на вынос, что, когда функция укладывается в веб-приложении, SPFeatureReceiverProperties, передающий SharePoint ресивер функция имеет web приложения уровня параметров.  Старые записи Андрея предполагает, что он имеет областью действия семейство узлов.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Оставь ответ

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