激活功能的范围自定义共享点 - 计时器作业

时间:2010-08-03 11:38:54

标签: c# sharepoint sharepoint-2007

所以我正在使用SPJobDefinition为sharepoint开发自定义计时器作业。

此作业通过功能接收器激活。

据我了解,SPJobDefinition在网络应用程序上运行。

如果功能范围是基于站点或基于Web的,是否有任何代码可以确定在客户作业中通过哪个站点激活该功能?

为了更清楚地了解我想要实现的目标,作业本身就是一个自定义的“警报我”通知工作。我想做的是,能够确定哪些网站已激活此功能,以确定要订阅警报通知的网站。

但我不知道如何确定哪些网站已激活此功能。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

以下是我过去常用的代码:

    public override void Execute(Guid targetInstanceId)
    {
        foreach (SPSite site in this.WebApplication.Sites)
        {
            try
            {
                if (SPSite.Exists(new Uri(site.Url)) && null != site.Features[FeatureId.AlertMeJob])
                {
                    try
                    {
                        ExecuteJob(site);
                    }
                    catch (Exception ex)
                    {
                        // handle exception
                    }
                }
            }
            finally
            {
                site.Dispose();
            }
        }
    }

FeatureId.AlertMeJob是一个GUID,表示功能接收者创建作业计划的功能(如果它尚不存在)。