我正在创建我的第一个计时器作业并想要调试它。我已经通过一个功能安装了计时器作业,并将其添加到 Web 应用程序的 JobDefinitions 集合中,并添加了一个 SPMinuteSchedule 以每 5 分钟运行一次(用于测试目的)。
然后,在 Visual Studio 中,我尝试将调试器附加到 WebApplication 的进程、中央管理进程和 OWSTIMER.exe 进程,但它不会调试到 TimerJob 的执行方法中。我在这里错过了什么。
附言计时器作业状态显示成功,因此它正在运行。奇怪的...
最佳答案
当我调试 TimerJobs 时,我在 Execute 方法的第一个开始处插入一个断言,这将始终失败。这会导致每次调用 Execute 方法时都会弹出一个窗口,因此您可以确保 TimerJob 已启动并且有足够的时间来附加调试器。当然,您必须在上线之前删除断言。
System.Diagnostics.Trace.Assert(false);
更重要的一件事是在部署新 DLL 后重新启动 Timer Service。否则,计时器服务将从旧 DLL 运行 TimerJob。
关于sharepoint - 调试 Sharepoint 计时器作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/985581/