我创建了一个自定义计时器作业,该功能在激活功能时添加。该功能确实被激活,没有任何异常。但是计时器作业未列在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();
}
}
功能范围是“网络”
答案 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文件夹中找到日志文件