Tridion 2009 SP1: пользовательская страница, использующая TDSE. Опубликованная страница остается в очереди публикации
Я пишу пользовательскую страницу для Tridion 2009 с пакетом обновления 1 (SP 1), которая публикует страницу на основе строки запроса, которая будет вызываться из запланированной задачи.
Я использую следующий код:
string pageId = Request.QueryString["page_id"];
string targetId = Request.QueryString["publication_target_id"];
if (string.IsNullOrEmpty(pageId))
{
Response.Write("This page is intended to be called automatically with a " +
+ "page id and publication target id");
return;
}
TDSE tdse = new TDSE();
string publicationId = pageId.Split('-')[0].Substring(4);
var publication = tdse.GetPublication("tcm:0-" + publicationId + "-1");
var page = tdse.GetPage(pageId, publication);
var target = tdse.GetPublicationTarget(targetId);
page.Publish(target, true, false, true);
Response.Write("Successfully published " + page.Title + " to " + target.Title);
Кажется, это работает, и я вижу страницы в очереди, но они остаются в состоянии "Выполняется".
Я все еще могу публиковать страницы вручную без проблем.
Журнал развертывания показывает, что он не получает работу, однако я вижу элементы в папке c:\tridion\work (я использую цель публикации в локальной файловой системе).
Есть идеи?
Обновление: вот журнал публикации, когда издатель работал как TcmPublisher /debug
01/06/2012 14:34:17 <5440> [Publisher] Queue message [769571] is retrieved from Queue consumer handler for PublishQueue
01/06/2012 14:34:17 <4896> [Publisher] Queue message handler for PublishQueue [0] working on queue message 769571
01/06/2012 14:34:17 <4896> [DefaultPublishTransactionHandler] Handling publish transaction [tcm:0-93950-66560]
01/06/2012 14:34:17 <4896> [DefaultPublishTransactionHandler] Publishing item [tcm:32-206093-64] from publication [tcm:0-32-1] to target [tcm:0-1-65537]
01/06/2012 14:34:17 <4896> [Transporting] Storage location: c:\tridion\incoming\tcm_0-93950-66560.Content\
01/06/2012 14:34:17 <4896> [Resolve engine] Getting resolver(s) for item type Tridion.ContentManager.CommunicationManagement.Page
01/06/2012 14:34:17 <4896> [Resolve engine] Using resolver [Tridion.ContentManager.Publishing.Legacy.Resolving.PageResolver]
01/06/2012 14:34:17 <4896> [Legacy resolving] Resolving the page [tcm:32-206093-64] took 00:00:00.0136441
01/06/2012 14:34:17 <4896> [Legacy resolving] Resolved page [tcm:32-206093-64] with title 'Website Redirects'
01/06/2012 14:34:17 <4896> [DefaultPublishTransactionHandler] Resolving took: 00:00:00.0468768
01/06/2012 14:34:17 <4896> [Render engine] Getting renderer(s) for item type Tridion.ContentManager.CommunicationManagement.Page and template type CompoundTemplate
01/06/2012 14:34:17 <4896> [Render engine] Using renderer [Tridion.ContentManager.Templating.TemplatingRenderer]
01/06/2012 14:34:17 <4896> [Render engine] Getting renderer(s) for item type Tridion.ContentManager.ContentManagement.Component and template type CompoundTemplate
01/06/2012 14:34:17 <4896> [Render engine] Using renderer [Tridion.ContentManager.Templating.TemplatingRenderer]
01/06/2012 14:34:17 <4896> [Render engine] Rendering took: 00:00:00.2469570
01/06/2012 14:34:17 <4896> [Render engine] Emmbed the result of this rendered component presentation with a tcdl:ComponentPresentation link for component [tcm:32-206079] with template [tcm:32-206080-32]
01/06/2012 14:34:17 <4896> [Render engine] Rendering took: 00:00:00.3473678
01/06/2012 14:34:17 <4896> [Transporting] Adding rendered item to the transport package: item [tcm:32-206093-64] 'Website Redirects' with template [tcm:32-206092-128] 'z_Htaccess Template'
01/06/2012 14:34:17 <4896> [Transporting] Using transport package handler: Tridion.ContentManager.Publishing.Transporting.DefaultPageHandler
01/06/2012 14:34:17 <4896> [Transporting] Adding Page tcm:32-206093-64 to the transport package for publishing
01/06/2012 14:34:17 <4896> [Transporting] Writing file: c:\tridion\incoming\tcm_0-93950-66560.Content\Pages\site\us\redirects.htaccess
01/06/2012 14:34:18 <4896> [Transporting] Adding rendered item to the transport package: item [tcm:32-206079] 'Redirects' with template [tcm:32-206080-32] 'HtAccess Url Redirects'
01/06/2012 14:34:18 <4896> [Transporting] Using transport package handler: Tridion.ContentManager.Publishing.Transporting.DefaultComponentHandler
01/06/2012 14:34:18 <4896> [Transporting] Add component [tcm:32-206079] with template [tcm:32-206080-32] to the transport package for publishing
01/06/2012 14:34:18 <4896> [Transporting] Add schema [tcm:32-190-8] to the transport package for publishing
01/06/2012 14:34:18 <4896> [Transporting] Building path for No (tcm:3-64-1024)
01/06/2012 14:34:18 <4896> [Transporting] Building path for Yes (tcm:3-63-1024)
01/06/2012 14:34:18 <4896> [Transporting] Add binary [tcm:0-0-0] with filename '.htaccess' and path '\site\us\.htaccess' to the transport package for publishing
01/06/2012 14:34:18 <4896> [DefaultPublishTransactionHandler] Updating the publish transaction with the list of processed items
01/06/2012 14:34:18 <4896> [Transporting] Saving the transport package
01/06/2012 14:34:18 <4896> Sending deploy control [Commit] for transaction [tcm:0-93950-66560] to deployer.
01/06/2012 14:34:18 <4896> [DefaultPublishTransactionHandler] Publish transaction took 00:00:00.6889970
01/06/2012 14:34:18 <4896> [Publisher] Cache statistics: SimpleCache: 14 Regions, 17 Objects, 20 Hits, 17 Misses
01/06/2012 14:34:18 <4896> Region 'Component': 1 Objects, 6 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'PublishTransaction': 1 Objects, 1 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'PublicationTarget': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'Page': 1 Objects, 3 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'Publication': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'Tdse': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'User': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'PageTemplate': 1 Objects, 2 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'TemplateBuildingBlock': 3 Objects, 5 Hits, 3 Misses.
01/06/2012 14:34:18 <4896> Region 'ComponentTemplate': 1 Objects, 2 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'StructureGroup': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'Schema': 1 Objects, 0 Hits, 1 Misses.
01/06/2012 14:34:18 <4896> Region 'Keyword': 2 Objects, 0 Hits, 2 Misses.
01/06/2012 14:34:18 <4896> Region 'Category': 1 Objects, 1 Hits, 1 Misses.
01/06/2012 14:34:18 <5440> [Publisher] Deleting queue message: 769571 from Queue consumer handler for PublishQueue
3 ответа
Это довольно странно, я не могу понять, в чем разница.
Вы пытались включить журналы издателя? Или, что еще лучше, запустите издатель в режиме отладки (tcmpublisher / debug) и попытайтесь выяснить, что происходит. Так как он застрял "В процессе", есть вероятность, что за это отвечает издатель.
Я сразу же подозреваю, что вы делаете что-то другое на стороне CM. В противном случае трудно объяснить успех публикации вручную.
Вы говорите, что можете публиковать страницы вручную без проблем. Можете ли вы подтвердить, что он работает на тех же страницах, которые не работают через пользовательскую страницу?
И, конечно же, следующий вопрос - совпадают ли цели публикации? Конечно, при публикации вручную вы выбираете тип цели, но при использовании API вы можете выбрать либо тип цели, либо цель публикации. В тексте говорится, что вы должны использовать цель публикации. Ты? И это та же самая цель публикации, которая связана с типом цели, который вы использовали вручную? (Конечно, к тому времени, когда он достигает журналов развертывания, существует только цель публикации.)
Вы указали ActivateBlueprinting и RollbackOnFailure. Отражают ли эти настройки то, что вы делали в ручном тесте? (Значит, публикация 32 - это то, что вы опубликовали, или ребенок?)
"Я вижу элементы в папке c:\tridion\work" - вы видите распакованный транспортный пакет или что-то еще?
У вас есть Deployer, входящий в DEBUG?