定时器作业未列在定时器作业定义+ Sharepoint 2007中

时间:2012-06-18 06:51:24

标签: sharepoint-2007

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

同样适用于Staging Server,但我在Production Server中遇到此问题。

我正在研究Sharepoint2007。

以下是我在功能激活中所做的工作。

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();
            }
        }

功能范围是“网络”

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您如何知道您的功能在没有错误的情况下被激活。你的代码有try / catch块,你在catch块中什么都不做。如果您的代码抛出任何错误,您的catch块将禁止它。 在catch块中添加此行并检查sharepoint日志。

Microsoft.SharePoint.Administration.SPDiagnosticsService.Local.WriteTrace(0,new SPDiagnosticsCategory(“Development Debugging”,TraceSeverity.Unexpected,EventSeverity.Information),TraceSeverity.Unexpected,str,null);

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