091502CC8D7F487BA52A08145ED03720
  • Thomas Pollinger
  • 25.05.2018
  • DE

Root Cause Analysis: "PDF-Erzeugung bei NonHTML: System. IO. FileNotFoundException: Could not find file"

Oft bekommt man Fehlverhalten auf den Tisch und fragt sich dann erstmal mal - Was ist denn ihr passiert? Denn nicht immer ist sofort ersichtlich, dass es sich um eine Abhängigkeitskette handelt, welche ggfs. nur sporadisch auftaucht. Jedoch sobald man das Verhalten gezielt nachstellen kann, geht es sehr schnell. Doch meist ist der Wag dahin sehr mühsam, da man sehr viele Infos, Erkenntnisse und weitere Daten auswerten. Wie in diesem Fall, bei dem sehr viel Zeit und Geduld notwendig war.


Regel 38

Freunde und Kollegen bitten dich um Hilfe, weil du dich als Entwickler ja mit jeglicher Technik auskennst. (Entwicklerweisheit)


Verhalten

Diese nachfolgenden Fehlermeldungen aus dem Publizierungsbericht sind eine sehr interessante Sache:

Publizierungsbericht
Errors: 
Procedure SetTime: C:\Caches\GarbageCollector\master-stylesheet.pdf:Could not find file 'C:\Caches\GarbageCollector\master-stylesheet.pdf'. 
------------------------------- 
Procedure SetTime: C:\Caches\GarbageCollector\master-stylesheet.pdf:Could not find file 'C:\Caches\GarbageCollector\master-stylesheet.pdf'.
System.IO.FileNotFoundException: Could not find file 'C:\Caches\GarbageCollector\master-stylesheet.pdf'.
File name: 'C:\Caches\GarbageCollector\master-stylesheet.pdf'
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
   at System.IO.File.OpenFile(String path, FileAccess access, SafeFileHandle& handle)
   at System.IO.File.SetCreationTimeUtc(String path, DateTime creationTimeUtc)
   at OpenText.WS.MS.Publisher.RDPublisher.SetTime(DateTime& newTime, SetTimeTypeEnum& whichTime, String& pathName)

und die Files dazu im RedDotTemp sind blockiert.


Ursache

Der PDF-Generator im Pagebuilder legt sich bei Wandlung von Inhalten wie JavaScript, StyleSheets, JSON usw. aus die Nase.


Lösung

Dienste stoppen, RedDotTemp bzw. den dazugehörigen SubFolder löschen, Dienste neu starten. Dann dafür sorgen, dass durch den PDF-Generator nur noch HTML-Files gehen und keine JSON, JS, CSS usw. welchen den PDF-Prozess zum Stillstand bringen bzw. die o.g. Fehler auslösen.


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.