Sharepoint Timer作业调试无法设置断点

时间:2012-04-25 13:18:25

标签: sharepoint-2010 breakpoints timer-jobs

我有点问题。我正在尝试按照本教程添加计时器作业: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无法设置断点“。

有谁知道我怎么能让它发挥作用?

2 个答案:

答案 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