我是Sitecore开发的新手,所以如果这个问题是基本的,我很抱歉.我创建了一个代理(计划任务)和一个WCF服务,并将它们都添加到我的SiteCore项目中.代理调用WCF服务代码调用的相同代码.
我遇到的问题是,当我调用Database.Template[ID template]传递我想要处理的项目的相应模板的ID容器时,它在代理任务内部工作,但不在WCF服务内部.
Database.Template[ID id]对WCF服务内部的任何调用都给了我一个NullReferenceException,但是代理内部的完全相同的调用正确地收集了模板.
这是由于某些结构性原因依赖于调用应用程序是网页而不是Web服务?
编辑#1:我有svc作为允许的扩展,我已经尝试过两者
Sitecore.Configuration.Factory.GetDatabase("master")
Run Code Online (Sandbox Code Playgroud)
和
var siteContext = Sitecore.Configuration.Factory.GetSite("websiteMaster");
siteContext.Database.Template[];
Run Code Online (Sandbox Code Playgroud)
两者都返回NullReferenceException.
我也可以成功获取一个Item,GetItem但是当我尝试访问该项的Template属性时,我得到了一个NullReferenceException.
您的WCF服务没有Sitecore上下文,因此Sitecore.Context.Database为null.
您可以添加svc到允许的扩展列表或通过获取数据Sitecore.Configuration.Factory.GetDatabase("master")
| 归档时间: |
|
| 查看次数: |
4436 次 |
| 最近记录: |