SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




docx to pdf mit Word Automation Services

Unbeantwortet Dieser Beitrag hat 7 Antworten

Ohne Rang
22 Beiträge
Wadik1977 erstellt 4 Aug. 2016 20:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen!

Mit Word Automation Services lasse ich ein "docx"-Dokument in PDF-Datei konventieren. In meiner Entwicklungsumgebung läuft es problemlos. In der produktiven Umgebung jedoch nicht.

Unter "Dienste auf dem Server" ist es vorhanden, und wird auch ausgeführt. Auch der Neustart brachte nichts.

Im Netz habe ich gefunden, dass der Word Automation Services standardmäßig im Sandkasten-Modus ausgeführt wird. Ich habe diesen PowerShell-Script ausgeführt:

$sp = Get-SPServiceApplication | where {$_.TypeName.Equals("Word Automation Services")}  
$sp.DisableSandbox = $true 
$sp.Update()

...das hat ebenfalls nichts gebracht.

Kann mir einer einen Tip geben, wo ich sonst noch nachschauen kann?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Aug. 2016 07:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nur den ganz allgemeinen Tip: schaue in die Logs. Stelle ggf. den LogLevel für den Dienst auf "Verbose", rufe Deine Funktion auf und schaue nach, was protokolliert wird.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
22 Beiträge
Wadik1977 Als Antwort am 5 Aug. 2016 09:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Einzige was ich da gefunden habe ist das hier:

Timer 'Word Automation Services': No items to process

sonst keine Fehler.

Hier ist mein Code:

if (properties.ListItem.Name.Contains(".docx") || properties.ListItem.Name.Contains(".doc"))
{
                                   ConversionJobSettings jobSettings;
                                   ConversionJob pdfConversion;
                                   string wordFile;
                                   string pdfFile;
                                   string wordAutomationServiceName = "Word Automation Services";

                                   jobSettings = new ConversionJobSettings();
                                   jobSettings.OutputFormat = SaveFormat.PDF;

                                   pdfConversion = new ConversionJob(wordAutomationServiceName, jobSettings);

                                   pdfConversion.UserToken = site.SystemAccount.UserToken;

                                   wordFile = properties.WebUrl + "/" + properties.ListItem.Url;
                                   if (properties.ListItem.Name.Contains(".docx"))
                                   {
                                       pdfFile = wordFile.Replace(".docx", ".pdf");
                                   }
                                   else
                                   {
                                       pdfFile = wordFile.Replace(".doc", ".pdf");
                                   }

                                   pdfConversion.AddFile(wordFile, pdfFile);

                                   pdfConversion.Start();

}

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Aug. 2016 10:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hast Du um den Codeausschnitt herum irgendeine Art von Fehlerbehandlung? Oder kann es sein, daß da ein Fehler auftritt, aber niemand bekommt es mit? Ich würde da auch mal ein paar Einträge ins Log schreiben, damit Du später nachvollziehen kannst, was wann passiert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
22 Beiträge
Wadik1977 Als Antwort am 5 Aug. 2016 11:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, im Try / Catch Block, wo ich versuche SPException abzufangen.

Ich habe das Gefühl, dass es wieder was mit der Assembly "Microsoft.Office.Word.Server" sein könnte. Es ist sehr deprimierend, wenn in meiner Entwicklungsumgebung alles läuft, in der Produktivumgebung jedoch nicht, ohne was anpassen zu müssen.

Der Code läuft bis "pdfConversion.Start()" durch, ab da ist Schluss.

Ohne Rang
22 Beiträge
Wadik1977 Als Antwort am 5 Aug. 2016 11:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In der Ereignisanzeige tauch diese Meldung auf:

Fehler beim Laden und Ausführen des Ereignisempfängers 'Personalworkflow_EventReceiver_Dokumenten.EventReceiver1.EventReceiver1' in 'Personalworkflow_EventReceiver_Dokumenten, Version=1.0.0.0, Culture=neutral, PublicKeyToken=658c9443928d84c1'. Weitere Informationen finden Sie unten.

: Der Remoteserver hat einen Fehler zurückgegeben: (403) Unzulässig.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Aug. 2016 11:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Wadik1977"]Der Remoteserver hat einen Fehler zurückgegeben: (403) Unzulässig[/quote]

Da hast Du doch den Fehler: der Code versucht etwas, was der User nicht darf. Das ist auch der Grund, warum man Entwicklern ständig predigt, sie sollen nicht immer nur mit Adminrechten testen...

Sorge dafür, daß die Benutzer die notwendigen Rechte haben oder prüfe die Rechte im Code und handle entsprechend. Wenn es unbedingt sein muß, packe ein RunWithElevatedPriviledges rein, aber das sollte nur die letzte Maßnahme sein.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
22 Beiträge
Wadik1977 Als Antwort am 5 Aug. 2016 12:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe alle Berechtigungen überprüft, sieht alles normal aus. Ich vermute aber, dass als SharePoint eingerichtet wurde, von einer externen Firma, dort irgendwo noch was eingestellt wurde, ich weiß nur nicht was.

Lange Rede kurzer Sinn: ich habe jetzt neuen Word Automation Services eingerichtet, und siehe da, es funzt.:)

Danke, wie immer, für deine Unterstützung!