我一直用某人交给我的计时器作业的一些代码。 他没有提供实际功能激活代码,所以我不得不把它写, 答案是肯定的。 我利用了 安德鲁 Connell 著名博客张贴内容 关于这个问题.
我使用的 Visual Studio 2010 和部署不断失败并出现错误"错误部署步骤中发生 '添加解决方案': 对象引用不设置到对象的实例。
我正在他的代码太夸张了。 我范围要 web 应用程序级别的特征, 如图所示:
结果, 发送到接收方的属性是从 web 应用程序, 不是一个网站的集合。 在结束, 代码看起来像这样:
公共覆盖 void FeatureActivated(SPFeatureReceiverProperties 属性)
{// 不做以下使用的 web 应用程序作用域功能, 它导致绝望
// 网站中的 SPSite = 属性。作为中的 SPSite Feature.Parent;SPWebApplication wa = 属性。作为 SPWebApplication Feature.Parent;
如果 (wa = = null) 引发新异常("webapp2 是空的"。);
foreach (SPJobDefinition 在华工作。JobDefinitions)
{请尝试
{
如果 (作业。名称 = = List_JOB_NAME)作业。删除();
}
赶上 (异常 e)
{
引发新异常("标记 2");
} // 捕获异常 e
}// 安装作业
WeatherForecastTimerJob weatherForecastTimerJob =
新 WeatherForecastTimerJob(List_JOB_NAME, wa);SPMinuteSchedule 附表 = 新 SPMinuteSchedule();
附表。BeginSecond = 0;
附表。EndSecond = 59;
附表。间隔 = 5;
weatherForecastTimerJob.Schedule = 附表;
weatherForecastTimerJob.Update();}
外卖的关键是,当该功能作用范围是一个 web 应用程序, SharePoint 传递给您功能接收机的 SPFeatureReceiverProperties 具有 web 应用程序级别的参数。 安德鲁的旧博客条目假定它应用范围限定为网站集.
</结束>
跟我在 Twitter 上 http://www.twitter.com/pagalvin