SharePoint 计时器作业 运行 但未执行

SharePoint Timer Job is running but not executing

此功能仅限于网站集级别。激活该功能后,将在 Web 应用程序中创建计时器作业,其通用名称包括它应该 运行 的网站集 URL。理论上,在网站集中停用该功能时, 它在那里停止执行,但在不同网站集上激活的任何其他计时器作业功能仍将 运行.

using Microsoft.SharePoint
using Microsoft.SharePoint.Administration

class DailyAlerts() : SPJobDefinition
{
   public DailyAlerts() : base() { }

   public DailyAlerts(string jobName, SPWebApplication webApp) : base(jobName, webApp, null, SPJobLockType.Job)
   {
      this.Title = jobName;
   }

   public override void Execute(Guid targetInstanceId)
   {
      // CHANGE THE SITE COLLECTION'S ROOT WEB SITE DESCRIPTION TO THE CURRENT TIME
   }
}

部署解决方案并在一个网站集上将其激活后,该作业从未执行任何自定义代码。本文帮助解决了以下问题: http://www.wahidsaleemi.com/2009/08/sharepoint-timer-jobs-not-running/。停止 SP 计时器服务器,删除缓存 XML 文件并启动服务后,激活的网站收集计时器作业完美执行。

但是,在不同的网站集上激活自定义计时器功能会导致该特定网站集的计时器作业未执行的相同初始问题。第一个计时器作业(post 清除缓存)仍然工作正常。

由于某些用户可以控制 on/off 功能,您可以看到这会让人感到沮丧。创建新网站集时,必须激活该功能,但它不会 运行 直到...缓存被清除?我在这里错过了什么?

提前致谢。

该服务可以用 powershell 重置,我的建议是对该功能进行描述,只是说该功能的全部功能要到第二天才能显现出来。

获取您的功能以在农场或网络应用级别更新 属性 包变量。

编写一个 powershell 脚本,然后扫描变量,如果变量等于 true,则 运行 脚本并通知某人重新启动。显然将变量重置回原来的样子。将此脚本与其中一个 SP 服务器的任务调度程序绑定到 运行 每晚一次,远离任何备份和搜索作业。这意味着如果您需要手动启动它,您也可以通过任务计划程序执行此操作!

这将意味着该过程是自动化的,但您只能在需要时强制计时器作业重新启动。

干杯 特鲁兹