2013-07-18 46 views
0

我使用Sitecore的直接訪問API當前項目。我有時遇到了一些情況,我想要一個獨立的程序集調用Sitecore,但不一定在Web上下文中。沒有任何方法可以訪問Sitecore上下文,而不需要在網站上部署代碼?以任何方式在web上下文之外以編程方式訪問Sitecore?

當然還有噸的配置設置。到目前爲止,我試圖欺騙一個Web上下文並提供必要的設置都遇到了失敗。是否有需要什麼樣的步驟,特別設置了將執行加載全局對象,並做一切通常會通過Sitecore的請求處理/流水線處理來實現任何文件?

+0

您是否嘗試過查看Web服務?我不確定這是否符合「網絡環境之外」的標準,但它可能是一個開始的好地方。 –

+0

謝謝,dhulk。有趣的是,我現在將一些HTTP處理程序放在一起,但我仍然有興趣找到一種方法直接對Sitecore進行編程,但沒有HttpContext。 – Iucounu

回答

2

如果你不想下去Web服務的路線,this blog post介紹了設定類庫項目,訪問Sitecore的信息。在這種情況下,它用於NUnit測試,但我相信這種技術是相同的。總而言之,它需要將Sitecore web.config信息複製到app.config文件(以及其他配置文件)中,引用相關的Sitecore程序集並進行一些配置調整以修復對App_Config文件夾的引用。

注意,使用這種技術時,你Sitecore.Context.Item將是空的,所以你可能會需要直接通過他們的路徑或ID例如訪問項目

var db = Sitecore.Configuration.Factory.GetDatabase("master"); 

var homeItem = db.GetItem("/sitecore/content/home"); 
//or 
var homeItem = db.GetItem(new Sitecore.Data.ID("<your GUID here>")); 
+0

太棒了!謝謝。 – Iucounu