SharePoint自定义计时器作业执行问题

时间:2014-01-30 07:03:36

标签: sharepoint sharepoint-2010 sharepoint-2013 sharepoint-timer-job

我们在Visual Studio 2012中为SharePoint 2013开发了一个计时器作业。计划在上午7点到7点15分之间运行。我们使用PowerShell部署了计时器作业。在代码中,我们在计时器执行方法的开头添加了PortalLog.LogString来记录SharePoint错误日志中的消息。

在网站集下,我们可以看到它已部署并激活。计时器作业的范围设置为VS中的站点。我们可以看到部署在管理中心的审阅作业定义中的计时器作业。但是,在预定的工作中看不到它。当我们通过审核作业定义编辑计时器作业并点击“立即运行”时,我们无法在使用PortalLog.LogString编写的错误日志中看到任何消息。

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

对不起 - 评论太久了。稍后会编辑以表示答案。

你必须在这里澄清一些事情:“在网站集下我们可以看到它已部署并激活” - 你的意思是你有一个网站集功能来部署计时器工作?计时器作业安装在服务器场级别,因此它应该是一个webapp / farm功能。

PortalLog.LogString仅供内部使用:PortalLog.LogString method

您是否尝试调试计时器作业?由于它已正确部署到“作业定义”,您可以单击立即运行到目前为止一切看起来都很好。您只需附加到SPTimerV4(SharePoint计时器作业),即可在解决方案中点击断点。

您应该使用不同的日志记录,如此处所述:https://sharepoint.stackexchange.com/questions/55381/timerjobs-and-uls并等待任何日志神奇地出现之前:调试!

答案 1 :(得分:0)

在我看来,有两个问题:

  1. 您应该使用其他方式进行日志记录LoggingService应该是首选方式。使用WriteEvent写入EventLog或WriteTrace以写入ULS日志。
  2. 正在运行的工作。确保重新启动所有Web服务器上的Owstimer.exe服务(可以通过此powershell script完成)。我希望您在powershell脚本或功能接收器中正确安排了您的工作。