我是 Sitecore 开发的新手,所以如果这个问题是基本的,我很抱歉。我已经创建了一个代理(计划任务)和一个 WCF 服务,并将它们都添加到我的 SiteCore 项目中。代理调用 WCF 服务代码调用的相同代码。
我遇到的问题是,当我Database.Template[ID template]
为要处理的项目调用传入相应模板的 ID 容器时,它可以在代理任务内部工作,但不能在 WCF 服务内部工作。
Database.Template[ID id]
对 WCF 服务内部的任何调用都会给我一个NullReferenceException
,但是代理内部完全相同的调用会正确收集模板。
这是由于某些结构原因导致调用应用程序是网页而不是 Web 服务吗?
编辑#1:我将 svc 作为允许的扩展名,并且我都尝试过
Sitecore.Configuration.Factory.GetDatabase("master")
和
var siteContext = Sitecore.Configuration.Factory.GetSite("websiteMaster");
siteContext.Database.Template[];
两者都返回NullReferenceException
。
我也可以使用 成功获得一个项目,GetItem
但是当我尝试访问该项目的模板属性时,我得到一个NullReferenceException
.