Sitecore计划任务:无法访问运行类中的任何项

Sitecore计划任务:无法访问运行类中的任何项,sitecore,task,Sitecore,Task,我通过数据库配置了一个计划任务,该任务按预期触发,并在C#类中调用一个方法“Execute”。我的问题是,在Execute方法中,无法访问Sitecore项。调用Sitecore.Context.Database时,我甚至会得到一个NullPointerExecOption 我想这一定是一个安全问题,这是有道理的。因此,我尝试使用UserSwitcher和SecurityDisabler获取权限,但没有帮助 有人能告诉我缺少什么吗?您不能在计划任务中使用Sitecore.Context。那里没有

我通过数据库配置了一个计划任务,该任务按预期触发,并在C#类中调用一个方法“Execute”。我的问题是,在Execute方法中,无法访问Sitecore项。调用Sitecore.Context.Database时,我甚至会得到一个NullPointerExecOption

我想这一定是一个安全问题,这是有道理的。因此,我尝试使用UserSwitcher和SecurityDisabler获取权限,但没有帮助


有人能告诉我缺少什么吗?

您不能在计划任务中使用
Sitecore.Context
。那里没有
Sitecore.Context
与HttpRequest绑定,并且计划任务中没有请求。正如John W在他的文章()中所写的:

静态Sitecore.context类公开的Sitecore上下文包含有关Sitecore安装和当前HTTP请求的信息。web.config文件中定义的httpRequestBegin管道中的处理器主要负责定义Sitecore上下文。Sitecore确定上下文数据库后,将确定该数据库中的上下文项

在计划作业中,应按数据库名称获取数据库,例如:

var masterDb=Sitecore.Data.Database.GetDatabase(“master”);
var webDb=Sitecore.Data.Database.GetDatabase(“web”);

工作正常!