2012-06-01 14 views
5

Ich schreibe eine benutzerdefinierte Seite für Tridion 2009 SP 1, die eine Seite basierend auf der Abfragezeichenfolge veröffentlicht, die von einer geplanten Aufgabe aufgerufen wird.Tridion 2009 SP1: Benutzerdefinierte Seite, die TDSE verwendet. Veröffentlichte Seite verbleibt in der Veröffentlichungswarteschlange

Ich verwende den folgenden Code ein:

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); 

Dies scheint zu funktionieren und ich kann die Seite (n) in der Warteschlange sehen, aber sie bleiben in dem „In Arbeit“ Zustand.

Ich kann immer noch Seiten manuell ohne Probleme veröffentlichen.

Das Deployer-Protokoll zeigt, dass es die Arbeit nicht empfängt, aber ich kann die Elemente im Ordner c: \ tridion \ work sehen (ich verwende das lokale Dateisystem-Pub-Ziel).

Irgendwelche Ideen?

Update: hier ist das Protokoll veröffentlichen, wenn die Publisher wie ausgeführt wurden 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 
+0

So rendert es normalerweise, sendet es an den Deployer, und der Deployer tut nichts dagegen? Das ist wirklich komisch. Hätte es etwas mit dem .htaccess-Dateinamen zu tun? Ich frage mich, was der Deployer dort zu tun versucht, können Sie versuchen, etwas mit einem anderen Namen zu veröffentlichen und sehen, ob es anders ist? –

+0

Hallo Nuno, so scheint es. Ich habe versucht, mit meiner Sitemap-Datei mit dem gleichen Ergebnis, also glaube nicht, es ist die. Htaccess. Wie gesagt, ich kann beide Geldstrafen von der CME veröffentlichen. Fühlen Sie sich wie ich einen Parameter in meinem Code oder etwas fehlt? –

+0

Sie könnten versuchen, die Veröffentlichungs- und Bereitstellungszeit anzugeben, und zwar in etwa wie folgt: Page.Publish (Ziel, Wahr, Falsch, Wahr, DateTime.Jetzt, DateTime.MinValue, DateTime.Now); –

Antwort

4

Das ist ziemlich seltsam, ich kann nicht verstehen, was der Unterschied sein würde.

Haben Sie versucht, Publisher-Protokolle zu aktivieren? Oder noch besser, führen Sie den Publisher im Debug-Modus (tcmpublisher/debug) aus und versuchen Sie herauszufinden, was passiert. Da es "In Progress" festsitzt, besteht die Chance, dass der Herausgeber dafür verantwortlich ist.

+0

Hi Nuno, nicht sicher, was sich geändert hat, aber es funktioniert jetzt nach einem Serverneustart. –

1

"Ich kann die Elemente im Ordner c: \ tridion \ work sehen" - sehen Sie das entpackte Transportpaket oder etwas anderes?

Haben Sie den Deployer, der sich DEBUG anmeldet?

+0

Ich kann das entpackte Transportpaket sehen, denke ich. Ja Deployer meldet sich beim Debuggen an. –

+0

Funktioniert die Veröffentlichung Ihrer benutzerdefinierten Seite ordnungsgemäß, wenn Sie eine einfache HTML-Seite veröffentlichen, keine Binärdateien? Meine Frage wäre auf der Binärdatei ". Htaccess". Während ich erwarten würde und Fehler, ist dies ein wenig ungewöhnlich. – JRW

+0

Nein, dasselbe Ergebnis mit anderen Seiten. –

2

Mein unmittelbarer Verdacht ist, dass Sie auf der CM-Seite etwas anderes machen. Ansonsten ist es schwierig, den Erfolg des manuellen Publizierens zu erklären.

Sie sagen, dass Sie Seiten manuell ohne Probleme veröffentlichen können. Können Sie bestätigen, dass es für die gleichen Seiten funktioniert, die über die benutzerdefinierte Seite fehlschlagen?

Und natürlich ist die nächste Frage, ob die Publikationsziele die gleichen sind. Bei der manuellen Veröffentlichung wählen Sie natürlich einen Zieltyp aus. Wenn Sie jedoch die API verwenden, können Sie entweder einen Zieltyp oder ein Veröffentlichungsziel auswählen. Der Text besagt, dass Sie ein Veröffentlichungsziel verwenden sollten. Bist du? Und ist es das gleiche Veröffentlichungsziel, das mit dem Zieltyp verbunden ist, den Sie manuell verwendet haben? (Wenn die Protokolle des Deployers erreicht werden, gibt es natürlich nur ein Veröffentlichungsziel.)

Sie haben ActivateBlueprinting und RollbackOnFailure angegeben. Entsprechen diese Einstellungen dem, was Sie in Ihrem manuellen Test getan haben? (So ​​ist Publikation 32 die, die Sie veröffentlicht haben, oder ein Kind?)

+0

Ja die gleichen Seiten veröffentlichen gut. Ich habe andere Seiten ohne Erfolg mit der benutzerdefinierten Seite versucht, also bin ich mir ziemlich sicher, dass Sie Recht haben, nur nicht sicher, wo! Ich werde alle Einstellungen überprüfen. –