如何在MOSS上安装自定义SharePoint计时器作业
您好我创建了, 自定义SharePoint计时器作业, 本文档下面是我的代码。
我写了并安装了很多 的WebParts。
但这是我第一次写作 MOSS上的SharePoint计时器作业。
我尝试使用wspBuilder部署它,
尝试将其复制到gac,
但是JOB没有出现在JOB列表上
管理中心网站,
中央行政>操作>计时器作业定义,
我怎样才能添加它并在
中央行政>操作>计时器作业定义 代码。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using System.IO;
using Microsoft.SharePoint;
namespace WSPBuilderProject1.FeatureCode
{
public class MyTimerJob : SPJobDefinition
{
public MyTimerJob()
: base()
{
this.Title = "My Timer Job";
}
public MyTimerJob(string jobName, SPService service, SPServer server, SPJobLockType targetType)
: base(jobName, service, server, targetType)
{
this.Title = "My Timer Job";
}
public MyTimerJob(string jobName, SPWebApplication webApplication)
: base(jobName, webApplication, null, SPJobLockType.ContentDatabase)
{
this.Title = "My Timer Job";
}
public override void Execute(Guid contentDbId)
{
using (SPWeb oWeb = SPContext.Current.Site.OpenWeb("/"))
{
SPWeb mySite = SPContext.Current.Web;
mySite.AllowUnsafeUpdates = true;
SPListItemCollection listItems = mySite.Lists["AuditLogCalculatedData"].Items;
int itemCount = listItems.Count;
for (int k = 0; k < itemCount; k++)
{
try
{
listItems.Delete(k);
}
catch { }
}
SPListItem item = listItems.Add();
item["FileName"] = "roi";
item["NumOfEntries"] = 10102;
item.Update();
mySite.AllowUnsafeUpdates = false;
}
}
}
}
答案 0 :(得分:1)
这是可以在FeatureActivated
事件
public override void FeatureActivated (SPFeatureReceiverProperties props) {
SPWebApplication webApp = props.Feature.Parent as SPWebApplication;
if (webApp == null)
throw new SPException("Error obtaining reference to Web application.");
// Ensure the job is not already registered.
foreach (SPJobDefinition job in webApp.JobDefinitions)
if (job.Name == JOB_NAME) job.Delete();
// Install job.
SharePointWarmupJob warmupJob = new SharePointWarmupJob(webApplication);
// Schedule the job to run every minute all the time.
SPMinuteSchedule schedule = new SPMinuteSchedule();
schedule.BeginSecond = 0;
schedule.EndSecond = 59;
schedule.Interval = 1;
warmupJob.Schedule = schedule;
// Save changes.
warmupJob.Update();
}
答案 1 :(得分:0)
如果你读下这篇文章,就会有一个压缩的解决方案文件(TaskLogger_CustomTimerJob.zip),你可以自己编译和编译。
VS2008将提示您将项目转换为2008,只需执行并编译。
您无法构建的问题位于文件BuildSharePointPackage.Targets中。 MakeCabPath对您的环境无效。我的makecab.exe位于C:\Windows\system32
路径中。我试图改变路径和重建,但它没有工作,它以某种方式试图使用旧的位置。所以我只是将makecab.exe复制到C:\Program Files\Microsoft Cabinet SDK\bin
并且它构建成功。
此外,您可能希望使用WSPBuilder来减轻创建SharePoint解决方案的痛苦。它安装了visual studio扩展,您可以使用它来制作wsp文件并从visual studio进行部署。 Download WSPBuilder here,并使用Walkthrough of the Visual Studio Add-in