来自SPWeb的计时器作业

Fai*_*aiz 6 sharepoint timer task

我想从代码中启动计时器作业需要Farm管理员凭据.但是,我需要从将在任何站点中使用的Web部件启动计时器作业.现在,当我尝试启动这项工作时,它显然是因为应用程序池标识不是服务器管理员而导致访问被拒绝错误.有关如何解决此问题的任何想法?

谢谢,

Joe*_*ore 6

计时器作业作为服务器场管理员运行,不应由最终用户直接触发.由于某些作业可能是资源密集型的,因此只有服务器场管理员可以创建新作业或修改现有作业的计划.

一种解决方案是使用SPWorkItem基础结构对用户任务进行排队,然后由从中派生的自定义计时器作业处理SPWorkItemJobDefinition.您的webpart会调用SPSite.AddWorkItem添加工作项.当您的计时器作业运行时,它将查找具有匹配的WorkItemType GUID的任何工作项并调用ProcessWorkItem重载.