|
|
Veröffentlicht am 08.04.2016 16:44:24
|
|
|

Kürzlich habe ich ein Online-Paper Grouping-Projekt gemacht. Die Hauptfunktionen umfassen Wortsatz, Vorschau und Erstellung von Prüfungsarbeiten. Wenn es um Wortoperationen am Anfang geht, fällt mir die Büro-COM-Komponente ein, um Word zu betreiben. Es dauerte etwa zwei Wochen, den Code für das gesamte System zu schreiben. Dann begann ich, wiederholt zu testen, fühlte mich lokal gut und konnte ein Word-Testpapier reibungslos erstellen, und die Leistung war in Ordnung. Deshalb konnte ich es kaum erwarten, es auf dem Server freizugeben.
Die erste ist, dass eine Komponente mit CLSID {000209FF-0000-0000-C000-000000046} in der COM-Fabrik aufgrund des folgenden Fehlers ausfällt: 8000401a. Das System kann den Serverprozess nicht starten, da die Konfigurations-ID falsch ist. Bitte überprüfe Benutzernamen und Passwort. (Ausnahme von HRESULT:0x8000401A).
Erstens werden all diese Probleme durch Berechtigungen verursacht, und die Lösung ist einfach, die Berechtigungen zu konfigurieren. Nicht nur für Excel und Word nützlich, sondern auch für alle Office-Produkte.
Um auf den Punkt zu kommen: Geben Sie zuerst dcomcnfg im Run ein, öffnen Sie den Component Service Manager->component service->my computer->DCOM-> finden Sie das entsprechende Microsoft Excel-Applikotion/Microsoft Word 97-2003-Dokument und klicken Sie dann mit der rechten Maustaste auf das Attribut, um die Startberechtigung zu aktivieren, um es auf OK zu geben. -------- kein Problem, dieses Problem ist gelöst.
Sprechen wir über die zweite Situation, das "Performance-Problem": Da unser System das nächste Subsystem unserer Website ist. Es gibt also eine bestimmte Nutzerbasis. Das System wurde von einer großen Anzahl von Nutzern sofort nach dem Start genutzt. Anfangs wurden vier- bis fünfhundert Zeitungen pro Tag zusammengefasst, und allmählich wurde das Volumen der Papiere immer größer, was der Beginn der Probleme mit dem System war. Der erste ist, dass es viele winWord.exe Prozesse im Prozess gibt. Es kann nicht enden. Obwohl der Systemcode den Quit-Prozess enthält und Ressourcen recycelt, wird das Problem nie gelöst. Die Folge einer großen Anzahl winword.exe Prozesse ist, dass der Server langsamer wird. Für diese Komponente sollte es besonders speicherintensiv sein.
Es gibt keine Möglichkeit, das Problem zu lösen. Der letzte Schurke war, einen Timing-Dienst zu schreiben, der den Winword-Prozess, der nicht lief, beendete. Das behandelt die Symptome, aber nicht die eigentliche Ursache. 、
Hier möchte ich sagen, dass Microsoft Office eine Desktop-Office-Anwendungssoftware ist, die hauptsächlich für gewöhnliche Nutzer entwickelt wurde, sie verfügt über reichhaltige UI-Elemente (Benutzeroberfläche) und eine Sammlung reiner lokaler oder Client-Software ist. Die Word-Automatisierungsoberfläche ist in erster Linie darauf ausgelegt, Fensterapplikationsaufrufe zu erleichtern. Zum Beispiel native, von Delphi entwickelte Anwendungen, VB, C#, Winform usw. Obwohl es möglich ist, Visible zu erzwingen, falsch zu sein, und Word in serverseitigem Code ausgeführt werden kann, bringt es dennoch viele knifflige Probleme mit sich.
1. ASP.NET basiert auf der B/S-Architektur. In der B/S-Architektur erfolgt der Benutzerzugriff gleichzeitig, was bedeutet, dass N Benutzer häufig gleichzeitig Anfragen an eine Serverseite stellen. In diesem Fall stirbt der Word-Automatisierungsaufruf oft von Zeit zu Zeit.
2. Aufgrund der Funktion der versteckten Schnittstelle können einige Schnittstellen, die im Fensterprogramm erfolgreich aufgerufen werden können, auf Serverseite nicht aufrufen oder sogar abstürzen, was oft zu toten Prozessen führt.
3. Da Word ein komplexes Desktop-Programm ist und die Standards genereller Webservice-Programme in Bezug auf Einfachheit und Effizienz nicht erfüllt, läuft es auf der Serverseite langsam und verbraucht viele Ressourcen (CPU, Speicher), da es nicht viele Benutzer gleichzeitig bedienen kann, und diese Ressourcen werden schnell erschöpft.
4. Die meisten Entwickler sind mit der COM-Technologie relativ wenig vertraut, und es gibt oft einige Codefehler beim Programmieren und Aufrufen der Word-Schnittstelle, sodass es schwierig ist, das Problem zu überprüfen, was ein häufiger Faktor ist, der zu toten Prozessen führt. Wortlose Prozesse verbrauchen nicht nur Serverressourcen, sondern führen oft dazu, dass Serverseiten keine neuen Word-Automatisierungsobjekte erstellen und weiterhin funktionieren. Einige Internetnutzer schlugen eine Lösung für einen toten Prozess vor: Programmieren, um den toten Prozess von Word zu töten, was eine Praxis ist, die Symptome zu behandeln, aber nicht die eigentliche Ursache. Der tote Prozess von Word ist verschwunden, aber die abnormale Schließung von Word wird dazu führen, dass viele Ressourcen nicht rechtzeitig freigesetzt werden können. Wie lange ein solcher Webserver bestehen wird, ist schwer zu sagen.
Um diese Probleme zu lösen, hat der Autor nach umfassender Recherche und Vergleich festgestellt, dass es eine Komponente aspose.words im Internet gibt, die die oben genannten Probleme vollständig beseitigt und empfohlen wird, mit Ihnen zu teilen.
Im Folgenden werde ich Ihnen einige der Operationscodes der aspose.words-Komponente vorstellen, in der Hoffnung, dass sie für diejenigen hilfreich sein wird, die sie benötigen
Originallink: http://blog.csdn.net/fraing/article/details/8989736
|
Vorhergehend:[Hilfe] Wenn du eine Website bauen willst, kannst du HTML verwenden, um mir zu helfen, den Quellcode der nächsten einzelnen Seite zu ändern. Bitte um HilfeNächster:Aspose.Words, um PDF-Dokumente zu generieren
|