Neseniai aš padariau internetinį popieriaus grupavimo projektą. Pagrindinės funkcijos realizuoja žodžių rinkimą, peržiūrą ir generuoja bandomuosius darbus. Kalbant apie žodžių operacijas pradžioje, vienas dalykas, kuris ateina į galvą, yra biuro COM komponentas, skirtas valdyti žodį. Visos sistemos kodo parašymas užtruko apie dvi savaites. Tada aš pradėjau testuoti pakartotinai, ir aš jaučiausi gerai vietoje, ir aš galėjau sukurti žodžio testą sklandžiai ir našumas buvo geras. Taigi aš negalėjau sulaukti, kol išleisiu jį į serverį.
Pirmasis yra tas, kad komponentas, kurio CLSID {000209FF-0000-0000-C000-0000000046} COM gamykloje sugenda dėl šios klaidos: 8000401a Sistema negali paleisti serverio proceso, nes neteisingas konfigūracijos ID. Patikrinkite vartotojo vardą ir slaptažodį. (Išimtis iš HRESULT:0x8000401A).
Visų pirma, visas šias problemas sukelia leidimai, o sprendimas yra tik konfigūruoti leidimus. Naudinga ne tik "Excel" ir "Word", bet ir visiems "Office" produktams.
Norėdami patekti į tašką, pirma, įveskite dcomcnfg paleisti, atidarykite komponento paslaugų tvarkyklė->komponentas paslauga->mano kompiuteris->DCOM-> rasti atitinkamą "Microsoft Excel" programą / "Microsoft Word 97-2003" dokumentą, tada dešiniuoju pelės mygtuku spustelėkite atributą suaktyvinti įkrovos leidimą pakanka, kad suteiktumėte jį Gerai. -------- nėra problemų, ši problema išspręsta.
Pakalbėkime apie antrąją situaciją "Našumo problema": Kadangi mūsų sistema yra kitas mūsų svetainės posistemis. Taigi yra tam tikra vartotojų bazė. Prie sistemos prisijungė daugybė vartotojų, kai tik ji pradėjo veikti. Iš pradžių keturi ar penki šimtai straipsnių buvo sugrupuoti per dieną, ir pamažu popierių apimtis darėsi vis didesnė, o tai buvo sistemos problemų pradžia. Pirmasis yra tai, kad procese yra daug winWord.exe procesų. Tai negali baigtis. Nors sistemos kode yra uždarymo procesas ir perdirbami ištekliai, problema niekada neišsprendžiama. Daugybės winword.exe procesų pasekmė yra tai, kad serveris sulėtėja. Šiam komponentui jis turėtų būti ypač imlus atminčiai.
Nėra galimybės išspręsti problemos. Paskutinis sukčius buvo parašyti laiko paslaugą, kuri nužudė winword procesą, kuris neveikia. Tai gydo simptomus, bet ne pagrindinę priežastį. 、
Čia noriu pasakyti, kad "Microsoft Office" yra darbalaukio biuro taikomoji programinė įranga, daugiausia sukurta paprastiems vartotojams, ji turi turtingus vartotojo sąsajos (vartotojo sąsajos) elementus ir yra grynos vietinės veikiančios programinės įrangos arba kliento programinės įrangos rinkinys. "Word" automatizavimo sąsaja pirmiausia skirta palengvinti langų programų skambučius. Pavyzdžiui, vietinės programos, kurias sukūrė Delphi, VB, C# Winform ir kt. Nors galima priversti "Visible" būti klaidingu, o "Word" gali veikti serverio kode, tai vis tiek sukelia daug sudėtingų problemų.
1. ASP.NET remiasi B/S architektūra. B/S architektūroje vartotojo prieiga yra vienalaikė, o tai reiškia, kad N vartotojai dažnai pateikia užklausas į serverio puslapį tuo pačiu metu. Tokiu atveju "Word" automatizavimo skambutis dažnai retkarčiais mirs.
2. Dėl paslėptos sąsajos veikimo kai kurios sąsajos, apimančios sąsajas, kurias galima sėkmingai iškviesti lango programoje, nepavyks iškviesti serverio pusėje arba net sugenda, o tai dažnai sukels negyvus procesus.
3. Kadangi "Word" yra sudėtinga darbalaukio programa ir neatitinka bendrųjų žiniatinklio paslaugų programų standartų dėl paprastumo ir efektyvumo, ji lėtai veikia serverio pusėje ir sunaudos daug išteklių (procesoriaus, atminties), ypač ji negali palaikyti didelio skaičiaus vartotojų prieigos vienu metu, o ištekliai bus greitai išeikvoti.
4. Dauguma kūrėjų yra gana nesusipažinę su COM technologija, o programuojant ir skambinant "Word" sąsajai dažnai būna tam tikrų kodo klaidų, todėl sunku patikrinti problemą, kuri yra dažnas veiksnys, sukeliantis negyvus procesus. "Word" negyvi procesai ne tik eikvoja serverio išteklius, bet ir dažnai sukelia serverio puslapių nesukūrimą naujų "Word" automatizavimo objektų ir toliau veikia. Kai kurie internautai pasiūlė negyvo proceso sprendimą: programavimas nužudyti negyvą "Word" procesą, kuris yra simptomų gydymo praktika, bet ne pagrindinė priežastis, negyvas "Word" procesas dingo, tačiau dėl nenormalaus "Word" uždarymo daugelio išteklių nebus galima laiku išleisti. Kiek laiko toks žiniatinklio serveris tarnaus, sunku pasakyti.
Siekdamas išspręsti šias problemas, atlikęs išsamius tyrimus ir palyginimą, autorius nustatė, kad internete yra komponento komponentas aspose.words, kuris visiškai pašalina aukščiau išvardytas problemas ir kurį rekomenduojama pasidalinti su jumis.
Žemiau pasidalinsiu su jumis aspose.words komponento operacijos kodu, tikėdamasis, kad jis bus naudingas tiems, kuriems to reikia
Originali nuoroda: http://blog.csdn.net/fraing/article/details/8989736
|