0

我创建了一个自定义计时器作业,该作业在激活功能时添加。该功能确实被激活,没有任何例外。但计时器作业未列在 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();
            }
        }

功能范围是“Web”

4

2 回答 2

0

你怎么知道你的功能没有错误地被激活。您的代码有 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 文件夹中找到日志文件

于 2012-08-01T05:20:25.250 回答
0

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

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

于 2012-06-18T17:21:51.703 回答