Artikel-ID: 257757 - Geändert am: Montag, 19. März 2007 - Version: 13.6 Was bei der serverseitigen Automatisierung von Office zu beachten istDieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base: 257757 (http://support.microsoft.com/kb/257757/EN-US/ ) Considerations for server-side Automation of Office Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung. Auf dieser SeiteZusammenfassung Entwickler können die Automatisierungsfunktion von Microsoft Office einsetzen, um benutzerdefinierte Lösungen zu erstellen, bei denen die Möglichkeiten und Features des jeweiligen Office-Produkts bestmöglich genutzt werden. Während eine solche programmatische Bereitstellung auf einem Clientsystem relativ einfach ist, können jedoch diverse Komplikationen auftreten, wenn die Automatisierung über einen serverseitigen Code erfolgen soll, wie zum Beispiel Active Server Pages (ASP), DCOM oder einen NT-Dienst. In diesem Artikel werden die Komplikationen erläutert, mit denen Entwickler konfrontiert sein können, es werden Alternativen zur Automatisierung aufgezeigt, durch die die Leistung gesteigert werden kann, und es werden Vorschläge dazu unterbreitet, wie Office konfiguriert werden kann, wenn eine serverseitige Automatisierung nicht zu vermeiden ist. Entwickler werden jedoch ausdrücklich darauf hingewiesen, dass die nachstehenden Vorschläge nur Informationszwecken dienen. Eine serverseitige Automatisierung von Office wird von Microsoft weder empfohlen noch unterstützt. Hinweis: In diesem Kontext bezieht sich der Begriff "serverseitig" auch auf Code, der auf einer Microsoft Windows NT- oder Microsoft Windows 2000-Arbeitsstation ausgeführt wird, sofern dieser Code von einer WinStation aus ausgeführt wird, bei der es sich nicht um die interaktive Station handelt, bei der der Benutzer angemeldet ist. So wird beispielsweise ein durch den Taskplaner unter dem Systemkonto gestarteter Code in dem gleichen Umfeld ausgeführt wie "serverseitiger" ASP- oder DCOM-Code. Die möglicherweise auftretenden Probleme sind also weitgehend die gleichen. Mehr Informationen zu WinStations und COM finden Sie in den nachstehenden Abschnitten "Weitere Informationen" und "Informationsquellen": Weitere Informationen Alle aktuellen Versionen von Microsoft Office wurden entwickelt, getestet und konfiguriert, um als Endbenutzerprodukte auf einer Clientarbeitsstation ausgeführt zu werden. Bei diesen Produkten werden ein interaktiver Desktop und das Vorhandensein eines Benutzerprofils vorausgesetzt. Sie bieten daher nicht den Grad an Ablaufinvarianz und Sicherheit, der erforderlich ist, um die Anforderungen an serverseitige Komponenten zu erfüllen, die darauf ausgelegt sind, unbeaufsichtigt ausgeführt zu werden. Die Automatisierung von Microsoft Office-Anwendungen unter Verwendung unbeaufsichtigter, nicht interaktiver Clientanwendungen oder Clientkomponenten (wie ASP, DCOM und NT-Dienste) kann von Microsoft zum jetzigen Zeitpunkt weder empfohlen noch unterstützt werden, weil Office bei einer Ausführung in einer solchen Umgebung instabil werden kann und/oder sich die Anwendungen eventuell gegenseitig sperren. Wenn Sie eine Lösung erstellen, die in einem serverseitigen Kontext ausgeführt wird, sollten Sie (so weit möglich) Komponenten verwenden, die auch bei unbeaufsichtigter Ausführung sicher sind, oder nach Alternativen suchen, bei denen zumindest ein Teil des Codes auf der Clientseite ausgeführt werden kann. Wenn Sie eine Office-Anwendung von einer serverseitigen Lösung aus verwenden, werden Sie feststellen, dass der Anwendung viele der Fähigkeiten fehlen, um erfolgreich ausgeführt werden zu können. Außerdem gehen Sie dabei erhebliche Risiken in Bezug auf die Stabilität Ihrer Gesamtlösung ein. Probleme bei der serverseitigen Automatisierung von OfficeWenn Entwickler Office in einer serverseitigen Lösung verwenden möchten, gibt es fünf Hauptproblembereiche, in denen sich Office wegen der Serverumgebung anders als erwartet verhält. Wenn Ihr Code erfolgreich ausgeführt werden soll, müssen Sie diese Problembereiche bei der Entwicklung berücksichtigen, um deren negative Auswirkungen auf ein Minimum zu begrenzen. Sie können nicht alle diese fünf Probleme bei der Entwicklung Ihrer Anwendung vollständig eliminieren. Daher müssen Sie auf der Basis der Anforderungen, die Ihre Lösung erfüllen soll, sinnvolle Prioritäten setzen.
Neben diesen größeren Problemen werden viele Kunden zudem feststellen, dass bei dem Versuch, Office serverseitig zu automatisieren, eine der folgenden Fehlermeldungen angezeigt wird, wenn Sie ihre Standardinstallation von Office unverändert lassen:
Alternativen zur Automatisierung bei serverseitiger Ausführung verwendenMicrosoft empfiehlt Entwicklern dringend, Alternativen zur Automatisierung von Office zu suchen, wenn sie serverseitige Lösungen entwickeln müssen. Wegen der grundlegenden Beschränkungen des Designs von Office können nicht alle geschilderten Probleme durch Änderungen der Office-Konfiguration behoben werden. Microsoft empfiehlt eine Reihe von Alternativen, bei denen eine serverseitige Installation von Office nicht erforderlich ist, und mit denen die Ausführung der gebräuchlichsten Aufgaben schneller und effizienter möglich ist als bei der Automatisierung. Bevor Sie Office als serverseitige Komponente in Ihr Projekt einbeziehen, sollten Sie mögliche Alternativen erwägen.Bei den meisten serverseitigen Automatisierungsaufgaben geht es um das Erstellen von Dokumenten. Da Office 2000 und spätere Versionen HTML als natives Dokumentformat unterstützen, können die meisten Dokumente im HTML-Format erstellt (bei Bedarf unter Verwendung von XML) und dann mithilfe eines MIME-Typs (MIME = Multipurpose Internet Mail Extensions) an den Client übermittelt werden, sodass der aus dieser Operation resultierende Text in Office angezeigt wird. Dieses Dokument kann bearbeitet, gespeichert und bei Bedarf sogar an den Server zurückgesendet werden. Und dazu müssen Sie auf dem Server nur ASP verwenden. In Verbindung mit früheren Office-Versionen können zu diesem Zweck andere, leicht zu bearbeitende Textformate verwendet werden (zum Beispiel RTF). Einige systemeigene Binärformate können mithilfe der Office Web Components (OWC) oder ActiveX Data Objects (ADO) bei wesentlich höherer Geschwindigkeit und Skalierbarkeit bearbeitet werden. Dokumenteigenschaften können so auch ohne Automatisierung eingesehen und geändert werden. Datei- und Versionsverwaltung sind auch mit den FrontPage-Servererweiterungen oder Distributed Authoring and Versioning (Verteilte Dokumentenerstellung und Versionsverwaltung, DAV) möglich. Wenn die Automatisierung unumgänglich ist, können die meisten Aufgaben auf den Client übertragen werden, wodurch Stabilität und Skalierbarkeit für das System verbessert werden, weil jeder Benutzer die jeweilige Aufgabe in seinem eigenen Kontext und mit seinen eigenen Einstellungen ausführt. Weitere Informationen zu diesen Themen und entsprechende Implementierungsbeispiele finden Sie in den folgenden Artikeln der Microsoft Knowledge Base: 270906
(http://support.microsoft.com/kb/270906/DE/
)
Wie Verwenden von ASP zu dem Generieren eines RTF-Dokuments in Stream zu Microsoft Word
198703
(http://support.microsoft.com/kb/198703/DE/
)
Kann Excel mit einem clientseitige VBScript wie automatisieren 199841
(http://support.microsoft.com/kb/199841/DE/
)
Welche Verfahrensweise zu Anzeige-ASP-Ergebnissen, die Excel bei IE mit Mime-Typen verwenden 224351
(http://support.microsoft.com/kb/224351/DE/
)
"Dsofile.dll" ermöglicht die Bearbeitung der Eigenschaften von Office-Dokumenten aus Visual Basic .NET 2003 und Visual Basic .NET 2002 244049
(http://support.microsoft.com/kb/244049/DE/
)
Wie Verwenden von Serverseitig, darstellt, um Diagramme dynamisch zu generieren 258187
(http://support.microsoft.com/kb/258187/DE/
)
OWebComp.exe enthält Skriptbeispiele für das Office 2000 Web Components 260239
(http://support.microsoft.com/kb/260239/DE/
)
Welche Verfahrensweise zu dem Formatieren von Zellendaten, wenn Sie Excel-Datei mit einer Active Server Pages-Seite erstellen 278973
(http://support.microsoft.com/kb/278973/DE/
)
BEISPIEL: ExcelADO zeigt, wie ADO zum Lesen und Schreiben von Daten in Excel-Arbeitsmappen verwendet wird 286023
(http://support.microsoft.com/kb/286023/DE/
)
Wie Verwenden einer VB ActiveX Komponente für Wordautomatisierung in Internet Explorer 288130
(http://support.microsoft.com/kb/288130/DE/
)
Wie Verwenden von ASP zu dem Erstellen von XML-Kalkulationstabelle für clientseitigen Anzeige 317316
(http://support.microsoft.com/kb/317316/DE/
)
Einschränkungen von Office Web Components, wenn Office Web Components verwandt wird, serverseitige Wenn in Ihrem Unternehmen die serverseitige Erstellung von binären Office-Dateien erforderlich ist, gibt es Fremdanbieter, die entsprechende hilfreiche Komponenten anbieten. Die folgende Liste nennt einige namhafte Anbieter auf diesem Gebiet. Diese Liste dient lediglich zur Information. Die Liste ist nicht vollständig. Andere Anbieter können möglicherweise Dienste zur Verfügung stellen, die für Ihre Zwecke besser geeignet sind. Sie sollten alle möglichen Fremdanbieter-Lösungen prüfen, um den für Ihre Geschäftsanforderungen am besten geeigneten Anbieter zu finden. Die folgenden Hersteller bieten zurzeit einige Lösungen zur programmatischen Erstellung und Bearbeitung von nativen Office-Dateiformaten.
Weitere Informationen finden Sie auf den folgenden Fremdanbieter-Websites: Aia Software B.V. http://www.aia-itp.com
(http://www.aia-itp.com)
Polar
http://www.polarsoftware.com
(http://www.polarsoftware.com)
SoftArtisans
http://www.softartisans.com
(http://www.softartisans.com)
SyncFusion http://www.syncfusion.com
(http://www.syncfusion.com)
Keylogix http://www.activedocs.com
(http://www.activedocs.com)
Hinweis:
Die in diesem Artikel genannten Fremdanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.
Konfigurieren von Office auf die serverseitige AusführungFalls keine andere Lösung möglich ist und Sie sich für eine Automatisierung von Office auf der Serverseite entscheiden, müssen Sie Maßnahmen gegen viele der zuvor beschriebenen Probleme ergreifen, um eine erfolgreiche Ausführung in einer solchen Umgebung zu gewährleisten. Da es bei den meisten Problemen einen Zusammenhang mit der Konfiguration gibt, ist es nicht möglich, ein einheitliches Verfahren zu benennen, durch das eine serverseitige Automatisierung von Office in allen Fällen und auf allen Systemen funktioniert. Einige Konfigurationseinstellungen können Konflikte mit anderen Optionen verursachen und jede Vorgehensweise hat ihre Vorteile und Nachteile. Sie müssen eventuell ein wenig experimentieren, um die Vorgehensweise zu ermitteln, die in Ihrer Umgebung die besten Resultate gewährleistet.In der Regel müssen Sie Folgendes tun, um eine Automatisierung von Office auf der Serverseite zu ermöglichen:
Der erste Schritt besteht deshalb darin, die Verwendung der Office-Automatisierung in Ihrer serverseitigen Lösung auf ein Minimum zu begrenzen und den Prozess auf einem Computer zu isolieren, der nicht von entscheidender Bedeutung für das Gesamtsystem ist und bei Bedarf neu gestartet werden kann. Auch der Aufrufkontext muss isoliert werden, damit ein "hängender" Aufrufclient nicht die Leistung eines wichtigen Systemdienstes beeinträchtigt. Automatisieren Sie zum Beispiel nicht direkt aus IIS mithilfe eines Systemthreads; isolieren Sie den Code lieber so, dass er in seinem eigenen Thread ausgeführt wird, damit er bei einem etwaigen Fehlschlagen nicht die IIS-Funktionalität insgesamt negativ beeinflusst. Bedenken Sie auch, wie bei Ihrem Konzept Sicherheit und eine angemessene Authentifizierung gewährleistet werden können. Da Office die Sicherheit auf der Serverseite nicht erzwingt, muss Ihr Code sicherstellen, dass nur "vertrauenswürdige" Codemodule, wie ASP-Seiten, Skriptdateien und so weiter, eine Automatisierungsinstanz einer Office-Anwendung erstellen und deren Methoden aufrufen dürfen. Außerdem muss gewährleistet sein, dass Dokumente sicher sind, bevor Sie sie durch Office öffnen lassen. Office-Anwendungen auf einem Server sollten immer mit der Sicherheitsstufe "Hoch" ausgeführt werden. Sollte Ihr Design nicht angemessene Sicherheitsvorkehrungen erzwingen, besteht ein erhebliches Risiko für Ihren Server! Nachdem Sie Ihr Design entworfen haben, sollten Sie bei der Codierung eine eher defensive Strategie wählen, um mögliche Probleme zu vermeiden und Fehler angemessen behandeln und beheben zu können, wenn sie auftreten. Stellen Sie sicher, dass Ihr Code Werte für optionale Parameter übergibt, weil fehlende oder Konflikte verursachende Werte es zuweilen erforderlich machen, dass Office den Benutzer zur Eingabe weiterer Informationen auffordert. Verwenden Sie in allen Funktionen Fehlersuchroutinen, um Fehlerbedingungen ordnungsgemäß behandeln zu können und diese Fehler unter Verwendung eines Protokollierungscodes protokollieren zu lassen, der durch eine benutzerdefinierte Einstellung (in der Registrierung oder einer INI-Datei) aktiviert und deaktiviert werden kann. Wenn Sie eine Aktion ausführen, die zur Anzeige eines von Office unabhängigen Dialogfeldes mit einer Fehlermeldung führen kann (beim Drucken kann zum Beispiel der Druckertreiber ein Dialogfeld anzeigen lassen, wenn sich im Drucker kein Papier mehr befindet), seien Sie darauf vorbereitet, mögliche gegenseitige Sperrungen zu behandeln, indem Sie einen Zeitüberschreitungswert oder einen zweiten Thread verwenden, um die Ausführung dieser Aktion zu überwachen. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base: 259971
(http://support.microsoft.com/kb/259971/DE/
)
Mithilfe von Visual Basic ein durch eine Office-Anwendung angezeigtes Dialogfeld schließen Verwenden Sie ihren Protokollierungscode zur Fehlerverfolgung und zum Debuggen Ihres Programms. Falls Sie einen benutzerdefinierten Objektpool verwenden, können Sie Leistungs- und Skalierbarkeitstests hinzufügen, um Auslastung und Protokollierungsprobleme zu überwachen, die Auswirkungen auf Clients haben. Mithilfe eines zentralen Controllers können Sie ebenfalls fehlerhafte Instanzen von Office beenden und neu erstellen lassen, wenn dies erforderlich ist, um die Stabilität des Gesamtsystems zu erhöhen. Wenn das Programm so weit fertig ist, dass es bereitgestellt werden kann, vergewissern Sie sich, dass Office auf dem Server so konfiguriert ist, dass es in einem geeigneten Benutzerkontext ausgeführt werden kann. Office erfordert ein Benutzerprofil. Für eine erfolgreiche Automatisierung muss Office mit einem solchen Benutzerprofil geladen werden. In einer serverseitigen Umgebung gibt es drei Wege, dieses Ziel zu erreichen.
288366
(http://support.microsoft.com/kb/288366/DE/
)
Konfigurieren von Office-Anwendungen um unter dem interaktiven Benutzerkonto zu ausgeführt werden Bei der zweiten Option wird zwar ein bestimmter Benutzer definiert, die Interaktivität ist jedoch nicht gegeben. Office startet im Kontext des festgelegten Benutzers auf einer neuen WinStation und mit einem unsichtbaren Desktop. Diese Option macht einige weitere Konfigurationsschritte erforderlich, um zu gewährleisten, dass die Registrierungsstruktur geladen wird, weil COM/DCOM diese Struktur nicht standardmäßig lädt. Diese Einstellung gilt für das gesamte System und kann daher Konflikte mit anderen Programmen verursachen. Weitere Informationen zu einer derartigen Konfiguration von Office finden Sie im folgenden Artikel der Microsoft Knowledge Base:
288367
(http://support.microsoft.com/kb/288367/DE/
)
Konfigurieren von Office-Anwendungen um unter einem spezifischen Benutzerkonto zu ausgeführt werden Bei der dritten Option haben Sie die Möglichkeit, einer bestimmten Website oder einem spezifischen Codemodul eine Identität zuzuweisen. So können Sie es vermeiden, eine Identität festzulegen, die für Office in seiner Gesamtheit gilt. Office wird im Kontext dieser Identität ausgeführt und korrekt geladen, sofern die Identität bereits zuvor für den betreffenden Computer konfiguriert wurde und die Registrierungsstruktur geladen worden ist. Diese Option ist die flexibelste und am besten zu sichernde, bietet jedoch wie die zuvor beschriebene zweite Option keine Interaktivität mit einem sichtbaren Desktop und erfordert einige weitere Konfigurationsschritte. Weitere Informationen zu einer derartigen Konfiguration von Office finden Sie im folgenden Artikel der Microsoft Knowledge Base:
288368
(http://support.microsoft.com/kb/288368/DE/
)
Wie wird Office-Anwendungen für Automatisierung aus einem COM konfiguriert+/ MTS-Paket Sie müssen sorgfältig abwägen, welche der vorstehenden Optionen Ihre Anforderungen bestmöglich erfüllt und wie Sie Ihre Lösung bereitstellen können. Es kann keine Gewähr dafür gegeben werden, dass mithilfe der Informationen aus diesem Artikel alle Probleme für alle Clients behoben werden können. Microsoft empfiehlt, vor der Bereitstellung ausführliche Tests durchzuführen. Informationsquellen Weitere Informationen zur serverseitigen Automatisierung finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
169321
(http://support.microsoft.com/kb/169321/DE/
)
INFO: COM-Server-Aktivierung und NT-Windows-Stationen Die Informationen in diesem Artikel beziehen sich auf:
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| SPRACHE AUSWÄHLEN
|
Zum Anfang
