Nedávno som robil online projekt zoskupovania papierov. Hlavné funkcie zahŕňajú sadzbu textov, náhľad a generovanie testovacích prác. Čo sa týka operácií so slovom na začiatku, jedna vec, ktorá mi napadne, je komponent kancelárskeho komunikačného systému na obsluhu slova. Napísanie kódu pre celý systém trvalo asi dva týždne. Potom som začal opakovane testovať, cítil som sa dobre lokálne, dokázal som hladko vytvoriť textový test a výkon bol v poriadku. Takže som sa nevedel dočkať, kedy ho vydám na server.
Prvým je, že komponent s CLSID {000209FF-0000-0000-C000-0000000046} vo fabrike COM zlyhá kvôli nasledujúcej chybe: 8000401a Systém nemôže spustiť serverový proces, pretože konfiguračné ID je nesprávne. Prosím, skontrolujte používateľské meno a heslo. (Výnimka z HRESULT:0x8000401A).
V prvom rade sú všetky tieto problémy spôsobené oprávneniami a riešením je jednoducho ich nakonfigurovať. Užitočné nielen pre Excel a Word, ale aj pre všetky Office produkty.
Aby som sa dostal k veci, najprv zadajte dcomcnfg v behu, otvorte component service manager->component service->my computer->DCOM-> nájdite príslušný dokument Microsoft Excel applicotion/Microsoft Word 97-2003 a potom pravým kliknutím na atribút na aktiváciu bootovacieho oprávnenia stačí na to, aby ste ho dali OK. -------- žiadny problém, tento problém je vyriešený.
Poďme sa porozprávať o druhej situácii "Problém s výkonom": Keďže náš systém je ďalším podsystémom našej webovej stránky. Takže existuje určitá používateľská základňa. Systém mal prístup k veľkému počtu používateľov hneď po spustení. Na začiatku sa denne zoskupovalo štyristo alebo päťsto novín a postupne sa objem novín zväčšoval, čo bol začiatok problémov systému. Prvým je, že v procese prebieha mnoho winWord.exe procesov. Nemôže to skončiť. Hoci systémový kód obsahuje proces ukončenia a recykluje zdroje, problém sa nikdy nevyrieši. Dôsledkom veľkého počtu winword.exe procesov je, že server sa spomalí. Pre túto zložku by to malo byť obzvlášť náročné na pamäť.
Problém sa nedá vyriešiť. Posledným problémom bolo napísať časovaciu službu, ktorá zrušila proces winword, ktorý nebežal. Tým sa liečia príznaky, ale nie samotná príčina. 、
Tu chcem povedať, že Microsoft Office je desktopový kancelársky softvér vyvíjaný hlavne pre bežných používateľov, má bohaté prvky používateľského rozhrania a je to sada čisto lokálneho bežiaceho softvéru alebo klientského softvéru. Rozhranie automatizácie vo Worde je primárne navrhnuté na uľahčenie volaní aplikácií v okne. Napríklad natívne aplikácie vyvinuté Delphi, VB, C# Winform a podobne. Aj keď je možné vynútiť Visible ako nepravdivé a Word môže bežať v serverovom kóde, stále to prináša mnoho zložitých problémov.
1. ASP.NET je založený na B/S architektúre. V architektúre B/S je prístup používateľov súbežný, čo znamená, že N používateľov často posiela požiadavky na stránku servera súčasne. V takom prípade automatizované volanie vo Worde často občas zlyhá.
2. Kvôli operácii skrytého rozhrania niektoré rozhrania, ktoré zahŕňajú rozhrania, ktoré je možné úspešne volať v programe okna, zlyhajú na strane servera alebo dokonca spadnú, čo často vedie k mŕtvym procesom.
3. Keďže Word je zložitý desktopový program a nespĺňa štandardy bežných webových servisných programov pre jednoduchosť a efektívnosť, je na serverovej strane pomalý a spotrebuje veľa zdrojov (CPU, pamäť), najmä nedokáže súčasne podporiť prístup veľkého počtu používateľov a zdroje sa rýchlo vyčerpajú.
4. Väčšina vývojárov je relatívne neoboznámená s COM technológiou a často sa vyskytujú chyby v kóde pri programovaní a volaní rozhrania Wordu, pričom je ťažké problém skontrolovať, čo je častý faktor spôsobujúci mŕtve procesy. Procesy s mŕtvymi slovami nielenže spotrebovávajú serverové zdroje, ale často spôsobujú, že stránky servera zlyhávajú pri vytváraní nových objektov automatizácie vo Worde a pokračujú v práci. Niektorí používatelia internetu navrhli riešenie mŕtveho procesu: programovanie na zabitie mŕtveho procesu Wordu, čo je prax liečby symptómov, ale nie koreňovej príčiny, mŕtvy proces Wordu je preč, ale abnormálne uzavretie Wordu spôsobí, že mnohé zdroje nebudú schopné byť včas uvoľnené. Ako dlho takýto webový server vydrží, je ťažké povedať.
Aby sa tieto problémy vyriešili, autor po dôkladnom výskume a porovnaní zistil, že na internete existuje komponent aspose.words, ktorý úplne eliminuje vyššie uvedené problémy a odporúča sa s ním zdieľať.
Nižšie s vami zdieľam niektoré operačné kódy komponentu aspose.words v nádeji, že to pomôže tým, ktorí to potrebujú
Pôvodný odkaz: http://blog.csdn.net/fraing/article/details/8989736
|