我想从代码中启动计时器作业需要农场管理员凭据。但是,我需要从将在任何站点中使用的 Web 部件启动计时器作业。现在,当我尝试开始工作时,它显然给了我一个拒绝访问错误,因为应用程序池标识不是场管理员。有关如何解决此问题的任何想法?
谢谢,
最佳答案
计时器作业以场管理员身份运行,不应由最终用户直接触发。由于某些作业可能是资源密集型的,因此只有场管理员才能创建新作业或修改现有作业的计划。
一种解决方案是使用 SPWorkItem
用于对用户任务进行排队的基础结构,然后由源自 SPWorkItemJobDefinition
的自定义计时器作业处理这些任务。 .您的 webpart 会调用 SPSite.AddWorkItem
添加工作项。当您的计时器作业运行时,它将查找具有匹配 WorkItemType GUID 的任何工作项并调用 ProcessWorkItem
重载。
关于sharepoint - 来自 SPWeb 的计时器作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772508/