Moin,
ich hatte gehofft das ich auf einen Server, auf den meine ASP .Net Anwendung läuft,
durch die Installation von PIA mein Word Template durch die anwendung befüllen kann.
Bei der Installation von PIA kommt die Meldung das ich erst Office installieren soll.
Das wollte ich eigentlich umgehen.
Hat jemand von euch ein Tipp?
Gruß,
Ingo
Ingo
Hallo IngoKo,
Die PIAs sind nur .NET Wrapper für das COM-Objektmodell von Office. Office muss natürlich trotzdem installiert sein.
Aber unabhängig davon: OFFICE GEHÖRT NIEMALS AUF EINEN SERVER!
BÖSE! JEHOVA!
Du kannst die XML-Formate verwenden, um auf dem Server Office-Dokumente zu erstellen und zu bearbeiten, ohne dass Office installiert sein muss.
Schau mal hier:
http://dotnet-snippets.de/dns/excel-export-ohne-excel-auch-fuer-web-SID632.aspx
http://www.carlosag.net/Tools/ExcelXmlWriter/
http://msdn.microsoft.com/en-us/library/aa212812%28office.11%29.aspx
Mit der Lizenz hat das nichts zu tun (Natürlich wird für jeden Benutzer, der Funktionen einer Office-Lizenz verwendet auch eine Lizenz benötigt; Aber das wäre ja auch bei der Installation auf einem Webserver kein Problem).
Warum ich sage, dass es böse ist, hat technische Gründe. Office-Anwendungen sind COM-Anwendungen und unterstützen kein Multithreading! Da ein Webserver aber viele Anfragen "gleichzeitig" verarbeiten kann und jede Anfrage in einem separaten Thread abgearbeitet wird, steht Multithreading bei ASP.NET auf jeden Fall auf dem Plan. Es sei denn jede Anfrage öffnet ihre eigene Instanz der jeweiligen Office-Installation. Das wäre aber auch sehr bedenklich und der Skalierbarkeit nicht unbedingt zuträglich, wenn für jede Anfrage auf dem Webserver z.B. eine eigene Excel-Instanz geladen werden müsste.
Das könnte man aber mit schnellen Festplatten und viel Arbeitsspeicher am Server ausgleichen.
Das größte Hinterdins für einen Server-Einsatz ist aber, dass Office-Anwendungen nicht für die unbeafsichtigte Automatisierung entworfen wurden. Man kann Office-Anwendunegn zwar über ihr COM-Objektmodell fernsteuern, aber das ändert nichts an der Tatsache, dass die Anwendung an einigen Stellen auf Eingaben vom Benutzer wartet (z.B. Meldungsfenster, Dialoge, etc.). Auf einem Webserver ist aber keiner da, der den OK-Button eines solchen Dialoges anklickt. Ein Beispiel dafür sind z.B. Hinweismeldungen bei Word-Serienbriefen.
Der Einsatz von Office auf einem Webserver ist deshalb nicht empfehlenswert.
Vor allem weil es andere Lösungsansätze gibt, die sehr gut funktionieren.
achso.
ich habe vermutet die office installation verlangsamt das system drastisch in irgendeiner weise. ja das man office so nicht nutzt ist klar, allerdings kenne ich in der realität beispiele wo das trotzdem so gemacht wird weil leute die keinen peil
haben einen dazu zwingen das so umsetzen. 🙁
... einen dazu zwingen das so umsetzen. 😦
Diese Leute sind meinst empfänglich für betriebswirtschaftliche Argumente. Mit ein bischen Fingerspitzengefühl lässt sich das meistens geradebiegen.
Es ist meistens kontraproduktiv sich mit technischen Argumenten geradeheraus gegen Entscheidungsträger zu stellen. Besser ist es auch sie einzugehen und zu versuchen die Dinge aus ihrer Sicht zu sehen. Für schwachsinnige Entscheidungen gibt es meistens einen Grund, der aber nicht immer offen ausgesprochen wird. Als Entwickler sollte man sich auch etwas auf Diplomatie verstehen und auch mal als Manager denken können.