Отладка заданий таймера Sharepoint - PullRequest
8 голосов
/ 12 июня 2009

Я создаю свою первую работу по таймеру и хочу ее отладить. Я установил задание таймера через функцию и добавил ее в коллекцию JobDefinitions веб-приложения, а также добавил SPMinuteSchedule для запуска каждые 5 минут (в целях тестирования).

Затем в Visual Studio я попытался подключить отладчик к процессу WebApplication, процессу Central Admin и процессу OWSTIMER.exe, но он не будет отлаживаться в методе выполнения TimerJob. Что мне здесь не хватает.

P.S. Состояние задания таймера говорит «успешно», поэтому он работает. Weird ...

Ответы [ 3 ]

9 голосов
/ 12 июня 2009

Когда я отлаживаю TimerJobs, я вставляю Assertion в самом первом начале метода Execute, который всегда будет неудачным. Это приводит к появлению всплывающего окна при каждом вызове метода Execute, поэтому вы можете быть уверены, что TimerJob был запущен и у вас достаточно времени для подключения отладчика. Конечно, вы должны удалить Утверждение, прежде чем начать работу.

System.Diagnostics.Trace.Assert(false);

Еще одна важная вещь - перезапуск службы таймера после развертывания новой библиотеки DLL. В противном случае служба таймера запустит TimerJob из старой библиотеки DLL.

4 голосов
/ 14 июня 2009
2 голосов
/ 12 июня 2009

Наиболее распространенные причины:

  1. Вы делали отладочную сборку?
  2. Вы поместили файл .pdb в ту же папку, что и сборка? (Простой поиск должен объяснить, как, например, Задания по отладке таймера )
  3. Также прочитайте Отладка пользовательских заданий таймера в MSDN для получения некоторых советов.
  4. Выполните 3 R: перед сборкой, повторным развертыванием сборки и сбросом службы таймера, прежде чем пытаться подключиться снова.
...