通过Visual Studio 2010部署功能时的Sharepoint Timer作业部署问题

时间:2011-12-07 05:52:17

标签: sharepoint

我以两种方式创建了“计时器作业”,

1.通过Visual Studio 2010处理SharePoint项目,并添加了几个功能和后来成功部署的Web部件,我通过功能添加了“计时器作业”,范围为“站点”,“作业定义”中没有“计时器”。

2.当创建具有计时器作业功能的项目时,它仅在“作业定义”中可用。

我需要部署计时器作业以及第一个场景中提到的其他功能

此致 帕。

3 个答案:

答案 0 :(得分:0)

您应该在功能范围“Web应用程序”中部署计时器作业。如果这不能解决您的问题,请发布您注册工作的代码。

答案 1 :(得分:0)

我已成功将计时器作业部署到与“Web”一样严格的功能,没有任何问题。

通过这种方式,我可以更轻松地将作业设置与特定列表实例相关联,而且我不必将任何网站集URL或其他任何内容硬编码到作业代码中。

您仍然需要确保在Web应用程序中注册它,这就是我为网络范围功能设计功能激活的方法:

Public Overrides Sub FeatureActivated(ByVal properties As SPFeatureReceiverProperties)

    Dim web As SPWeb = DirectCast(properties.Feature.Parent, SPWeb)


    ' Remove job if it exists.
    DeleteJobAndSettings(web.Site.WebApplication)

    ' Create the job.
    Dim job As New TimerJob_myClass(TimerJob_myClass.JobName, web.Site.WebApplication)

此外,尽管它是一个Web功能并显示在“管理功能”下,但最好将其标记为隐藏。只能通过从PowerShell运行stsadm命令行来激活此类功能。例如:

stsadm -o activatefeature -url http://intranet.contoso.local/ -id 01234567-AAAA-BBBB-CCCC-DDDDEEEEFFFF

您应该以具有与您使用的网站关联的内容数据库的权限的用户身份运行PowerShell。在GUI激活期间通常运行功能接收器代码的应用程序池无法访问配置数据库,这就是它通过GUI失败的原因。

答案 2 :(得分:0)

我的问题在生产中通过使用以下powershell激活功能

解决了
Enable-SPFeature -identity "sample_Job Definition" -URL http://portaluat

我的工作定义范围是网站