1

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

在网站集下,我们可以看到它已部署并激活。计时器作业的范围设置为 VS 中的站点。我们可以看到部署在中央管理的审查作业定义中的计时器作业。但是,在预定的作业中看不到它。当我们通过查看作业定义来编辑计时器作业并点击“立即运行”时,我们在使用PortalLog.LogString.

可能是什么问题?

4

2 回答 2

0

抱歉 - 评论太长了。稍后将编辑以表示答案。

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

PortalLog.LogString仅供内部使用:PortalLog.LogString 方法

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

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

于 2014-01-30T18:50:20.337 回答
0

在我看来,有两个问题:

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