【问题标题】:Timer job not listed in Timer Job Definitions + Sharepoint 2007计时器作业未在计时器作业定义 + Sharepoint 2007 中列出
【发布时间】:2012-08-01 13:20:25
【问题描述】:

我创建了一个自定义计时器作业,该作业在激活某个功能时添加。该功能确实被激活,没有任何例外。但计时器作业未列在 Central Admin 的计时器作业定义中。

在暂存服务器上也是如此,但我在生产服务器中面临这个问题。

我正在开发 Sharepoint2007。

以下是我在Feature Activated中所做的。

public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    SPWeb parentWeb = properties.Feature.Parent as SPWeb;
                    UpdateEmpReferralListTimer taskJob;
                    SPMinuteSchedule schedule;
                    foreach (SPJobDefinition job in parentWeb.Site.WebApplication.JobDefinitions)
                    {

                        if (job.Name == "xyz")
                            job.Delete();
                    }
                    parentWeb = properties.Feature.Parent as SPWeb;
                    taskJob = new UpdateEmpReferralListTimer("xyz", parentWeb.Site.WebApplication);
                    schedule = new SPMinuteSchedule();
                    schedule.BeginSecond = 0;
                    schedule.EndSecond = 59;
                    taskJob.Schedule = schedule;
                    taskJob.Update();

                });
            }
            catch (Exception Ex)
            {
                string str = Ex.Message.ToString();
            }
        }

功能范围是“网络”

【问题讨论】:

  • 您的问题是缺少您正在做什么的代码示例。另外请说明激活了哪些范围功能(或者您的意思是已安装,这会更有意义)。
  • @AlexeiLevenkov 用代码片段和范围更新了问题。

标签: sharepoint-2007


【解决方案1】:

据我所知,如果 SharePoint 帐户设置正确,则尝试执行需要管理员权限的任务(如创建计时器作业)不应通过站点级功能激活回调起作用。网站正常运行的帐户没有管理权限。

由于所有帐户都具有相同的权限,因此它可能适用于您的临时服务器。查看您的生产服务器上的 SharePoint 日志以了解什么是异常(在删除吃异常而不重新抛出/报告它的代码之后 - catch (Exception Ex) {...})。

【讨论】:

    【解决方案2】:

    您如何知道您的功能正在无错误地激活。您的代码有 try/catch 块,而您在 catch 块中什么也没做。如果您的代码抛出任何错误,您的 catch 块将抑制它。 在你的 catch 块中添加这一行并检查 sharepoint 日志。

    Microsoft.SharePoint.Administration.SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("开发调试", TraceSeverity.Unexpected, EventSeverity.Information), TraceSeverity.Unexpected, str, null);

    您可以在 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS 文件夹中找到日志文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多