Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Debugging Sharepoint timer jobs

I am creating my first Timer Job and want to debug it. I have installed the timer job through a feature, and added it to a webapplication's JobDefinitions collection, and added a SPMinuteSchedule to run every 5 minutes (for testing purposes).

Then, in Visual Studio I've tried attaching the debugger to the WebApplication's Process, the Central Admin process and the OWSTIMER.exe process, but it will not debug into the Execute Method of the TimerJob. What am I missing here.

P.S. The timer job status says succeeded, so it is running. Weird...

like image 879
Colin Avatar asked Jun 12 '09 08:06

Colin


3 Answers

When I'm debugging TimerJobs I insert a Assertion at the very first begin of the Execute method, which will always fail. This results in a pop up every time the Execute method is called so you can be sure that the TimerJob was started and have enough time to attach the debugger. Of course you have to remove the Assertion before you go live.

System.Diagnostics.Trace.Assert(false);

One more important thing is that you restart the Timer Service after you deployed a new DLL. Otherwise the Timer Service will run the TimerJob from the old DLL.

like image 77
Flo Avatar answered Nov 18 '22 21:11

Flo


Debugger.Launch()

like image 38
salgo60 Avatar answered Nov 18 '22 23:11

salgo60


Most common reasons:

  1. Did you do a debug build?
  2. Did you place the .pdb file in the same folder as the assembly? (A simple search should explain how - eg. Debugging Timer Jobs)
  3. Also read Debugging Custom Timer Jobs on MSDN for some tips.
  4. Perform the 3 R's: Re-build & Re-deploy assembly & Reset the Timer Service before trying to attach again.
like image 2
mundeep Avatar answered Nov 18 '22 23:11

mundeep