2014-09-18 94 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 ....

相關問題