2009-08-25 6 views
6

У меня есть задание таймера, которое было развернуто на сервере с несколькими концами веб-интерфейса.Не удалось вызвать задания таймера SharePoint.

  • Это задание таймера считывает его конфигурацию из Хранилища иерархических объектов.
  • Это задание таймера планируется запустить ежедневно на сервере.

Но проблема в том, что это задание таймера не вызывается ежедневно. Я внедрил ведение журнала событий в методе Execute() задания таймера, но я не вижу никаких генерируемых журналов.

  • Любые идеи относительно того, что может привести к тому, что задание таймера не будет выполнено для выполнения службой таймера SharePoint? Как устранить эту проблему?

  • Есть ли какие-либо «gotcha» для запуска заданий таймера на серверах с нескольких интерфейсов? Будет ли выполнение задания таймера выполняться во всех концах веб-интерфейса или любой из них в арбитражном порядке? Как узнать, какая машина будет иметь журналы событий?

  • Это может быть глупый вопрос, но имеет ли несколько передних концов для балансировки нагрузки влиять на поведение Иерархических объектов?

EDIT:

Один из комментаторов, Шон McDounough (спасибо Sean !!) сделал очень хороший момент, что:

«или не работает на задание таймера все WFE будут функцией значения перечисления SPJobLockType, указанного в конструкторе. Использование значения «Нет» означает, что задание будет выполняться на всех WFE ».

Теперь мое задание на таймер отвечает за отправку периодических писем в список пользователей. В настоящее время он помечается как SPJobLockType.Job»

  • Если изменить это SPJobLockType.None, значит ли это, что моя работа таймера будет выполняться во всех WFES отдельно? (Это не требуется, это будет спам все пользователи с несколькими письмами)

  • Или это означает, что задание таймера будет выполняться в любом одном из WFES, arbitarily?

ответ

9

Попробуйте перезапустить службу таймера SharePoint из командной строки с помощью NET STOP SPTIMERV3, за которым следует NET START SPTIMERV 3. Я предполагаю, что служба таймера работает со старой версией вашей сборки .NET. Служба обновления таймера автоматически не перезагружает сборки при обновлении решения WSP.

+4

Отличная точка зрения от Ларса, и тот, который обычно ловит разработчиков (как новых, так и опытных), которые работают со службой таймера. Еще одна дополнительная заметка для вас: ashwnacharya: будет ли задание таймера работать на всех WFE будет функцией значения перечисления SPJobLockType, указанного в конструкторе. Использование значения «Нет» означает, что задание будет выполняться на всех WFE. Однако значение «Job» означает, что он будет работать только на одном сервере - том, на котором вы отправили задание (если вы не указали конкретный SPServer в своем конструкторе). –

+0

Я понял, что у вас был TimerJopb, работающий на вашей машине для разработчиков? Если нет, проверьте мой вопрос по адресу http://stackoverflow.com/questions/985581/debugging-sharepoint-timer-jobs, чтобы узнать, не шло ли что-то ... – Colin

+1

Ты буквально спас мне жизнь. – ragebiswas

2

Чтобы сделать это, выполните следующие действия:

  • Остановка службы таймера.
  • Нажмите кнопку «Пуск», выберите «Администрирование», а затем «Службы».
  • Щелкните правой кнопкой мыши пункт «Службы Windows SharePoint Services» и выберите «Остановить» или «Перезапустить службу».

Этот URL помог мне.

Смежные вопросы