调试Sharepoint计时器作业

时间:2009-06-12 08:22:09

标签: sharepoint wss timer-jobs

我正在创建我的第一个Timer Job并想要调试它。我已通过一个功能安装了计时器作业,并将其添加到webapplication的JobDefinitions集合中,并添加了一个SPMinuteSchedule,每5分钟运行一次(用于测试目的)。

然后,在Visual Studio中,我尝试将调试器附加到WebApplication的Process,Central Admin进程和OWSTIMER.exe进程,但它不会调试到TimerJob的Execute方法。我在这里错过了什么。

P.S。计时器作业状态显示成功,因此它正在运行。奇怪的...

3 个答案:

答案 0 :(得分:9)

当我调试TimerJobs时,我在Execute方法的第一次开始时插入一个Assertion,它总是会失败。每次调用Execute方法时都会弹出一次,这样您就可以确定TimerJob已经启动并且有足够的时间来连接调试器。当然,你必须在上线之前删除断言。

System.Diagnostics.Trace.Assert(false);

更重要的是,在部署新DLL后重新启动Timer Service。否则,定时服务将从旧DLL运行TimerJob。

答案 1 :(得分:4)

答案 2 :(得分:2)

最常见的原因:

  1. 你做过调试构建吗?
  2. 您是否将.pdb文件放在与程序集相同的文件夹中? (一个简单的search应该解释如何 - 例如。Debugging Timer Jobs
  3. 另请阅读MSDN上的Debugging Custom Timer Jobs以获取一些提示。
  4. 执行3 R:重建&重新部署装配&在尝试重新连接之前重置定时器服务。