Nedávno jsem dělal online projekt seskupování papírů. Hlavní funkce zahrnují sazbu textu, náhled a generování testovacích prací. Pokud jde o operace se slovy na začátku, napadá mě komponenta kancelářského COM pro práci s textem. Napsání kódu pro celý systém trvalo asi dva týdny. Pak jsem začal opakovaně testovat, cítil jsem se dobře lokálně, dokázal jsem plynule vytvořit textový test a výkon byl v pořádku. Takže jsem se nemohl dočkat, až ji vydám na server.
První je, že komponenta s CLSID {000209FF-0000-0000-C000-0000000046} ve fabrice COM selže kvůli následující chybě: 8000401a Systém nemůže spustit serverový proces, protože konfigurační ID je nesprávné. Prosím, zkontrolujte uživatelské jméno a heslo. (Výjimka z HRESULT:0x8000401A).
Především jsou všechny tyto problémy způsobeny oprávněními a řešením je prostě jejich nastavení. Užitečné nejen pro Excel a Word, ale také pro všechny Office produkty.
Abych přešel k věci, nejprve zadejte dcomcnfg v běhu, otevřete správce komponentních služeb >component service->my computer->DCOM-> najděte odpovídající dokument Microsoft Excel applicotion/Microsoft Word 97-2003 a pak klikněte pravým tlačítkem na atribut pro aktivaci bootovacího oprávnění, což stačí k tomu, abyste ho dali OK. -------- žádný problém, tento problém je vyřešen.
Pojďme si promluvit o druhé situaci "Problém s výkonem": Protože náš systém je dalším podsystémem našeho webu. Takže existuje určitá uživatelská základna. Systém byl okamžitě po spuštění přístupný velkým počtem uživatelů. Zpočátku bylo denně seskupeno čtyři až pět set novin a postupně se objem novin zvětšoval, což byl začátek problémů se systémem. Prvním je, že v procesu probíhá mnoho winWord.exe procesů. Nemůže to skončit. Ačkoli systémový kód obsahuje proces ukončení a recykluje zdroje, problém nikdy není vyřešen. Důsledkem velkého počtu winword.exe procesů je, že server zpomaluje. U této komponenty by to mělo být obzvlášť náročné na paměť.
Problém nelze vyřešit. Poslední problémem bylo napsat časovací službu, která zabila proces winword, který neběžel. Tím se řeší příznaky, ale ne skutečná příčina. 、
Zde chci říct, že Microsoft Office je desktopová kancelářská aplikace vyvinutá hlavně pro běžné uživatele, má bohaté prvky uživatelského rozhraní a je sadou čistě lokálně běžícího softwaru nebo klientského softwaru. Rozhraní automatizace Wordu je primárně navrženo pro usnadnění volání aplikací v oknech. Například nativní aplikace vyvinuté Delphi, VB, C# Winform atd. Ačkoliv je možné vynutit Visible jako falešné a Word může běžet v serverovém kódu, stále to přináší mnoho složitých problémů.
1. ASP.NET je založen na B/S architektuře. V architektuře B/S je přístup uživatelů souběžný, což znamená, že N uživatelů často současně posílá požadavky na stránku serveru. V takovém případě volání automatizace Wordu často čas od času selže.
2. Kvůli operaci skrytého rozhraní některá rozhraní, která zahrnují rozhraní, jež lze úspěšně volat v okenním programu, selžou na straně serveru nebo dokonce spadnou, což často vede k mrtvým procesům.
3. Protože je Word složitý desktopový program a nesplňuje standardy obecných webových servisů pro jednoduchost a efektivitu, je na serverové straně pomalý a spotřebovává mnoho zdrojů (CPU, paměť), zejména protože nemůže podporovat přístup velkého počtu uživatelů najednou a zdroje se rychle vyčerpá.
4. Většina vývojářů není s COM technologií poměrně obeznámena a při programování a volání rozhraní Word často dochází k chybám v kódu, což je obtížné problém zkontrolovat, což je častý faktor způsobující nefunkční procesy. Procesy bez obsahu Word nejen spotřebovávají serverové zdroje, ale často způsobují, že stránky serveru selžou vytvářet nové objekty pro automatizaci ve Wordu a pokračovat v práci. Někteří uživatelé internetu navrhli řešení mrtvého procesu: programování na zabití mrtvého procesu Wordu, což je praxe léčby příznaků, ale ne kořenové příčiny, mrtvý proces Wordu je pryč, ale abnormální uzavření Wordu způsobí, že mnoho zdrojů nebude možné včas uvolnit. Jak dlouho takový webový server vydrží, je těžké říct.
Aby bylo možné tyto problémy vyřešit, autor po důkladném výzkumu a srovnání zjistil, že na internetu existuje komponentní složka aspose.words, která zcela eliminuje výše uvedené problémy a doporučuje se s vámi sdílet.
Níže s vámi sdílím část operačního kódu komponenty aspose.words v naději, že to pomůže těm, kteří to potřebují
Původní odkaz: http://blog.csdn.net/fraing/article/details/8989736
|