我有点问题。我正在尝试按照本教程添加计时器作业:http://dotnetfinder.wordpress.com/2010/07/24/creatingcustomsharepointtimerjob2010/
我到了启用计时器作业并且每五分钟启动一次的程度。 问题是它没有执行所有的Execute方法。
public override void Execute(Guid contentDbId)
{
// get a reference to the current site collection's content database
SPWebApplication webApplication = this.Parent as SPWebApplication;
SPContentDatabase contentDb = webApplication.ContentDatabases[contentDbId];
// get a reference to the "ListTimerJob" list in the RootWeb of the first site collection in the content database
SPList Listjob = contentDb.Sites[0].RootWeb.Lists["Liens"];
// create a new list Item, set the Title to the current day/time, and update the item
SPListItem newList = Listjob.Items.Add();
//newList["URL"] = "http://"+DateTime.Now.ToString()+".fr";
//newList.Update();
}
我将调试器附加到OWSTIMER.EXE。 如果我尝试在该行添加一个断点:SPList ListJob = ...,没关系, 但是如果我尝试在下一行添加一个新的断点(SPListItem newList = ...),那么我有以下消息: “无法设置以下断点:... CLR无法设置断点“。
有谁知道我怎么能让它发挥作用?
答案 0 :(得分:7)
您似乎正在附加到正确的服务。请参阅How to: Debug a Timer Job以仔细检查您的步骤。
此外,正如本评论中所指出的,您应该在部署计时器作业时重新启动计时器服务:
标记
2011年2月11日上午4:41
有一个非常重要的步骤 需要使用任何计时器项目完成。你要回收利用 部署之间的SharPoint计时器服务。最好的方法是 添加
net stop SPTimerV4 - Pre Build
net start SPTimerV4 - Post Build
到你的sharepoint项目。如果你不做上述事情 - 你将是 很困惑为什么你的代码似乎不是最新的。原因是 计时器服务使用您的类缓存程序集。这个可以 在尝试确定代码的原因时,需要花费数小时的故障排除时间 不部署。
答案 1 :(得分:1)
确保您的项目配置处于调试模式(在发布模式下,编译器的设置已启用优化代码)。请参阅此blog post