SharePoint 2013自定义计时器作业在开发服务器上运行,而不是在生产服务器上运行



我在2012年的SharePoint 2013中为SharePoint 2013中开发了一个自定义计时器作业,该工作将发送电子邮件通知。问题是它在开发服务器上工作正常。

我遵循以下步骤在开发服务器1上调试。)在相应的站点上部署计时器作业。2.)在services.msc中重新启动计时器服务。4.)最后转到SharePoint 2013中央政府 ->监视 ->查看工作定义,然后单击相应的计时器作业,然后说立即运行。

执行此操作后,在Execute()方法的Visual Studio中,断点被击中。因此,在开发服务器中它正在运行。

现在在生产服务器上,我无法使用Visual Studio进行调试,因此我部署了包装解决方案(.WSP)。

我可以看到该功能已在网站收集管理 ->站点收集功能中激活。

现在在生产服务器上我遵循以下步骤1.)在services.msc中重新启动计时器服务。

进一步测试计时器作业是否在生产服务器上工作,我在execute()方法开始时使用了PortalLog.LogString("Flow test1");。现在,这是在开发服务器上运行的,我在SharePoint日志中看到了消息,但是在" flow Test1"的" flow Test1"上,我在中央管理员中单击" flow Test1"。

任何人都可以提出什么问题和可能的解决方案?

在我看来有两个问题:

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

以下是要尝试的几件事:

  • 前往中央政府并从那里运行计时器工作。然后转到"工作历史"页面,检查它是否成功完成。如果有错误,则应从那里查看错误消息。这将为您提供有关发生的事情的线索。
  • 正如Mazin所说,在所有服务器中重新启动计时器服务。部署后,DLL被过程缓存,您不会看到您的更改反映。
  • 浏览SharePoint日志并搜索异常或错误。您可以通过选择工作运行的时间范围来缩小搜索范围。您可以使用以下PS脚本:

Get-SPLogEvent -StartTime "02/02/2014 11:00" -EndTime "02/02/2014 13:00" | Out-GridView

如下所述,似乎您的工作组件未部署在GAC中。验证装配是否存在。

相关内容

  • 没有找到相关文章

最新更新