0
我的sitecore網站訂閱了內容更改的OnSave事件。當我登錄內容管理器並更改任何字段時,該事件在網站上成功觸發。現在,我試圖做同樣的事情,除了從獨立的控制檯應用程序觸發此事件。以編程方式觸發Sitecore事件
下面的代碼更改了內容,我可以看到網站上的更改,但OnSave事件未觸發。編輯上下文不是無聲的,所以它應該觸發事件,但事實並非如此。
我還檢查了事件引用數據庫,並且正在創建新事件,但它並未在網絡上觸發。有沒有人有關於事件未被觸發的線索?
Pipeline.Start("initialize", new PipelineArgs(), true);
// get database
string domainUser = @"sitecore\admin";
if (Sitecore.Security.Accounts.User.Exists(domainUser))
{
Sitecore.Security.Accounts.User user =
Sitecore.Security.Accounts.User.FromName(domainUser, false);
using (new Sitecore.Security.Accounts.UserSwitcher(user))
{
var db = Factory.GetDatabase("master");
Item ii = db.SelectSingleItem("/sitecore/content/Home");
using (new EditContext(ii, true, false))
{
String current = ii.Fields["Breadcrumb Title"].Value;
Console.WriteLine("Current value: " + current);
current += " e";
Console.WriteLine("Changing to: " + current);
ii.Fields["Breadcrumb Title"].Value = current;
}
}
}
我嘗試使用Item.Editing,並沒有有所作爲。通過「在網上」我的意思是網站。現在我正在開發環境中工作,所以我們使用sitecore master(沒有發佈)。並且控制檯應用程序也運行在同一臺機器上 – webber
好的。那麼我猜想線索會是,它看起來並不像你在任何「正常」類型的web上下文中運行Sitecore。我說這個的原因是;您正在爲Console.WriteLine進行調試。我記得閱讀一些關於如何讓Sitecore在傳統HttpContext外部運行的帖子(用於測試和嘲笑的目的) - 但是我看到的所有方法都嚴重地改變了Sitecore的功能。如果在這些方法的上下文中運行,我不希望正常的Sitecore事件觸發和運行,就像您通常所期望的那樣。 –
你能分享關於你的開發環境如何配置的任何信息嗎?如果是這樣,我可能會進一步提供幫助。 –