我已经遇到了几次问题,我已经开发了一个自定义计时器作业,我希望我的网站收集管理员使用自定义应用程序页面管理此作业的时间表,但我一直遇到与安全有关的障碍。

由于TimerJob是SpweBapplication的子对象,因此它们存储在配置数据库中。如果您正确地设置了农场,以使您的内容Web应用程序的应用程序池用户没有对配置数据库的写入访问权限,则无法从您的内容Web应用程序中运行的代码创建新的TimerJobDefinitions。不良的解决方法/黑客将是在配置数据库上为您的应用程序池用户提高数据库权限。一种更好的方法是将计划管理页面移至中央管理员,因为中央管理应用程序池帐户可以写入配置数据库,但随后我们失去了全部点 - 我希望我的站点集合管理员能够管理时间表!

我能想到的唯一替代解决方案是要拥有另一个TimerJob,该临时job对新的TimerJobs进行轮询(例如,我的网站集合中的SharePoint列表)进行创建,并如果从内部添加了该项目,则将其创建,并创建它。使用“自定义计划管理”页面的内容Web应用程序。

我的问题是,还有另一种既高效又优雅的方式吗?

有帮助吗?

解决方案

这基本上是与 自动化站点收集 问题。您正在使用一个队列。另一种方法可能是在CA中使用Web服务,您可以从Web应用程序中调用。

/ww

许可以下: CC-BY-SA归因
scroll top