2014-09-18 72 views
1

我想accesss的Sitecore的DB和物品从控制台应用程序像访问Sitecore的DB从控制台应用程序API

Sitecore.Data.Database DB = Sitecore.Context.Database 或 Sitecore.Data.Database分贝= Sitecore.Data.Database.GetDatabase(“主”)

如何配置和设置我的控制台应用程序访问数据库如上?

感谢大家的建议,我真的很感兴趣配置更改,我用webservice,但它有非常有限的方法。例如,如果我想用模板创建一个项目并插入具有预填充值的项目,则不存在此类选项。我正在寻找控制台apporach的原因是我想从XML或Excel表导入内容并将其推送到sitecore树,最终使用计划任务定期运行控制台应用程序。我不想复制整个web.config和app_config。如果有人已经这样做了,可否请您发布步骤和必要的配置更改?

+0

你无法做到这一点。你为什么要这么做?也许可以指出你的选择 – RobertoBr 2014-09-18 22:02:57

回答

0

你有两个选择,我认为:

1)导入网站的web.config的Sitecore的位到您的控制台应用程序的app.config中,使Sitecore的API“只是工程”

我我确实读过一篇关于此的博客文章,但我现在找不到该参考文献。 (我会再看一看)但我认为简单但冗长的方法是复制所有< sitecore/>元素及其引用的所有单独文件。我相当肯定你可以通过一些想法将其减少到数据访问所需的配置子集。

2)不要直接使用Sitecore API,连接到远程公开访问它的Web服务。

有一些这些已经存在。 Sitecore本身公开一个,Sitecore Rocks有一个,而Hedgehog TDS也有一个。您可以随时编写自己的(因为在Sitecore ASP.Net应用程序内运行的任何Web服务都可以进行数据库调用并来回报告值 - 只要记住要考虑安全性,如果此Web服务可能因任何原因而暴露于外部)

约翰·西链接到这里的一些相关的东西:

http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/09/Getting-Data-Out-of-the-Sitecore-ASPNET-CMS.aspx

- 编辑补充 -

我还没有发现博客文章我还记得。但是,我碰到这个线程SO传来:

Accessing Sitecore API from a CLI tool

是指这个博客帖子:

http://www.experimentsincode.com/?p=232

我想给你所需要的选项1.

的信息

(它提醒我,当然,当你复制配置的东西,你必须复制Sitecore二进制文件到你的应用程序的文件夹以及)

1

我只想扩展@JermDavis的帖子,并指出Sitecore不是在不在Web应用程序中时被访问的粉丝。但是,如果您仍希望这样做,则需要确保您的控制台应用程序的app.config文件中包含来自站点的web.config和App_Config的所有必要配置设置。

此外,您将永远无法在控制台应用程序中调用Sitecore.Context,因为Sitecore上下文位于HttpContext之上,这意味着它必须是应用程序并且具有有效的请求才能使用它。你要找的东西更多的是Sitecore.Configuration.Factory.GetDatabase("master")

好运和快乐编码:)

1

这听起来像是对Sitecore的项Web API的工作。每当我需要从内容管理服务器上下文以外或Sitecore应用程序上下文之外的主数据库访问Sitecore数据时,我都使用Sitecore项目Web API。 Web API绝对不允许您执行标准Sitecore API所做的所有事情,但它可以充当一个良好的基础,现在我扩展到Web API,而不是尽可能编写自己的自定义Web服务。

0

感谢JemDavis的建议。 我复制了配置并对config部分进行了更改以消除冲突。我复制了几乎所有的Sitrecore,analytics和lucene dll,它效果很好。 唯一需要记住的是,将app_config文件夹复制到您的dll所在的位置。 再次感谢JemDavis ....

相关问题