2012-06-01 1 views
5

Я пишу настраиваемую страницу для Tridion 2009 SP 1, которая публикует страницу на основе строки запроса, которая будет вызываться из запланированной задачи.Tridion 2009 SP1: Пользовательская страница, использующая TDSE. Опубликованная страница остается в очереди публикации

Я использую следующий код:

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 (я использую целевую папку pub для локальной файловой системы).

Любые идеи?

Обновление: вот публиковать журнал, когда издатель был запущен как TcmPublisher/отлаживать

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 
+0

Так что он обычно отображается, отправляет его развертывателю, и разработчик ничего не делает? Это действительно странно. Будет ли это иметь какое-либо отношение к имени файла .htaccess? Интересно, что там пытается сделать развертыватель, можете ли вы попробовать опубликовать что-то с другим именем и посмотреть, не отличается ли это? –

+0

Hi Nuno, вот что кажется. Я пробовал с файлом sitemap с таким же результатом, поэтому не думаю, что это .htaccess. Как я уже сказал, я могу опубликовать оба штрафа от CME. Почувствуйте, что мне не хватает параметра в коде или что-то в этом роде? –

+0

Вы можете попробовать указать время публикации и развертывания, что-то вроде этих строк: Page.Publish (target, true, false, true, DateTime.Теперь DateTime.MinValue, DateTime.Now); –

ответ

4

Это довольно странно, я не могу понять, что разница будет.

Вы пытались включить журналы издателей? Или даже лучше, запустите издателя в режиме отладки (tcmpublisher/debug) и попытайтесь выяснить, что происходит. Поскольку он застрял «In Progress», вероятность того, что издатель несет ответственность за это.

+0

Hi Nuno, не уверен, что изменилось, но теперь он работает после перезагрузки сервера. –

1

«Я могу видеть элементы в папке c: \ tridion \ work» - вы видите распакованный транспортный пакет или что-то еще?

У вас есть ведение журнала Deployer в DEBUG?

+0

Я вижу, что пакет распакованного транспорта я считаю. Да Deployer регистрируется в отладке. –

+0

Правильно ли печатается ваша пользовательская страница, если вы публикуете базовую страницу html, нет двоичных файлов? Мой вопрос будет о двоичном '.htaccess'. Хотя я ожидал бы и ошибки, это немного необычно. – JRW

+0

Нет, тот же результат с другими страницами. –

2

Мое непосредственное подозрение в том, что вы делаете что-то другое на стороне CM. В противном случае трудно учесть успех ручной публикации.

Вы говорите, что можете публиковать страницы вручную без проблем. Можете ли вы подтвердить, что он работает для тех же страниц, которые сбой через пользовательскую страницу?

И, конечно же, следующий вопрос заключается в том, являются ли цели публикации одинаковыми. При публикации вручную, конечно, вы выбираете целевой тип, но при использовании API вы можете выбрать либо целевой тип, либо цель публикации. В тексте говорится, что вы должны использовать цель публикации. Ты? И та же самая цель публикации, которая подключена к типу Target, который вы использовали вручную? (Конечно, к тому времени, когда он достигнет журналов развертывания, существует только цель публикации.)

Вы указали ActivateBlueprinting и RollbackOnFailure. Эти параметры отражают то, что вы сделали в своем ручном тестировании? (Итак, публикация 32 та, которую вы опубликовали, или ребенка?)

+0

Да, те же страницы публикуются штрафом. Я пробовал другие страницы без успеха с помощью пользовательской страницы, поэтому я уверен, что вы правы, просто не знаете где! Я дважды проверю все настройки. –