1

我有一个 SharePoint 计时器作业,它需要一个文档库并放置文档,将它们转换为 PDF,然后每晚将它们放入 SQL 服务器。问题是,计时器作业在按计划调用时似乎不起作用。如果我安装它,然后使用我编写的一个小控制台应用程序,调用它可以正常工作的作业执行。当它按计划运行时,它不会。

我知道作业正在运行的原因:

  1. 计时器作业状态表示它在午夜后约 12 分钟完成(从午夜开始)
  2. 目标数据库表已被截断(任务是在导出之前执行此操作)

我知道有问题的原因:

  1. 数据库为空且不包含任何文档。手动运行它会用文档填充它
  2. 第一行代码应该输出到事件日志,但它不会这样做一次。手动运行作业多次正确记录。另一个用于测试写入日志的计时器作业在此服务器上正常工作。

现在我在想,在 owstimer 下运行而不是控制台应用程序时,与权限有关是一件很奇怪的事情。但事实是,它所做的第一件事就是记录到 Windows 事件日志中,这并没有发生,但在一个只这样做的计时器作业中,它确实有效。并且在似乎没有发生的事件记录之后,正在命中截断代码。

4

1 回答 1

1

当您通过控制台应用程序运行作业时,它会在您的用户的安全上下文中运行。

当作业通过计时器运行时,它在运行该进程的用户的安全上下文中运行。

检查哪个用户正在运行计时器作业,检查该用户的权限。事件日志或共享点日志文件中应该有错误。

于 2009-11-04T12:13:57.220 回答