Office ' i serveripoolse automatiseerimise kaalutlused

Kokkuvõte

Arendajad saavad Microsoft Office ' is automatiseerida, et luua kohandatud lahendusi, mis kasutavad Office ' i tootesse sisseehitatud võimalusi ja funktsioone. Kuigi sellist programmilisi arenguid saab rakendada ka suhtelise kergusega klientarvutis, võib esineda mitmeid komplikatsioone, kui automatiseerimine toimub serveripoolse koodiga (nt Microsoft Active Server Pages (ASP), ASP.NET, DCOM või Windows NT teenus). Selles artiklis käsitletakse komplikatsioone, mida arendajad võivad silmitsi seista. Artikkel pakub ka alternatiive automatiseerimiseks, mis võib jõudlust kiirendada. Arendajad peaksid siiski teadma, et selles artiklis ette nähtud soovitused on mõeldud ainult informatiivseks otstarbeks. Microsoft ei soovita ega toeta Office ' i serveripoolse automatiseerimist.

Märkus.

Selles kontekstis loetakse Accessi andmebaasimootor taaslevitatav ja Access Runtime Microsoft Office ' i komponentideks. Termin "server-pool" kehtib ka koodil, mis töötab Windowsi tööjaamas, kui kood töötab Windowsi tööjaamast, mis pole sisse logitud kasutaja interaktiivne jaam. Näiteks Toiminguajasti käivitatud kood töötab sama keskkonnaga kui "serveripoolse" ASP-kood või DCOM-koodina. Seetõttu võib esineda mitmeid selles artiklis kirjeldatud probleeme. Windowsi tööjaamade ja COM-i kohta lisateabe saamiseks lugege jaotist "Lisateave" ja jaotist "Viited".

Lisateave

Kõik Microsoft Office ' i praegused versioonid on loodud, testitud ja konfigureeritud käivituma lõppkasutaja toodetena kliendi tööjaamas. Nad eeldavad interaktiivset töölauda ja kasutajaprofiili. Nad ei paku reentrancy või turbe taset, mida on vaja, et rahuldada järelevalveta töötamiseks mõeldud serveripoolse komponentide vajadusi. Microsoft ei soovita ega toeta Microsoft Office ' i rakenduste automatiseerimist järelevalveta, mitteinteraktiivsete klientrakenduste või komponentide kaudu (sh ASP, ASP.NET, DCOM ja NT teenused), kuna Office ' i kasutamisel on selles keskkonnas ebastabiilne käitumine ja/või tupik. Kui ehitate lahenduse, mis töötab serveripoolse kontekstis, peaksite proovima kasutada järelevalveta täitmiseks ohutuid komponente. Või peaksite püüdma leida alternatiive, mis võimaldavad vähemalt osa koodist käivitada klientrakenduse. Kui kasutate Office ' i rakendust serveripoolse lahendusega, siis ei ole rakendusel palju vajalikke võimalusi edukalt töötamiseks. Lisaks võtate riske üldise lahenduse stabiilsuse tagamiseks.

Probleemid Office ' i serveri automatiseerimise abil

Arendajad, kes proovivad kasutada Office ' it serveripoolse lahendusega, peavad olema teadlikud viiest peamisest valdkonnast, kus Office käitub keskkonna tõttu oodatust teistmoodi. Kui teie kood on edukalt käivitatud, peate need probleemid lahendama ja võimalikult palju minimeerima. Kui koostate rakenduse, arvestage nende probleemidega hoolikalt. Ühe lahendusega ei saa lahendada kõiki probleeme. Erinevad kujundused nõuavad elementide määramist erinevalt.

  • Kasutaja identiteet: Office ' i rakendused eeldavad kasutaja identiteeti, kui rakendusi käitatakse, isegi kui automatiseerimine käivitab rakendused. Rakendused proovivad lähtestada tööriistaribasid, menüüsid, suvandeid, printereid ja teatud lisandmooduleid, mis põhinevad rakenduse kasutaja registritaru kasutaja registritaru sätetel. Paljud teenused töötavad jaotises kontod, kus pole kasutajaprofiilid (nt süsteemi konto või IWAM_ [serverinimi] kontod). Seetõttu ei pruugi Office käivitumisel õigesti käivituda. Selles olukorras annab Office tõrketeate CreateObject või funktsiooni CoCreateInstance . Isegi juhul, kui Office ' i rakendust saab käivitada, ei pruugi muud funktsioonid õigesti töötada, kui kasutajaprofiili pole olemas.

  • Interaktiivsus töölauaga: Office ' i rakendused eeldavad, et neid käitatakse interaktiivse töölaua all. Teatud juhtudel võib juhtuda, et teatud automatiseerimise funktsioonide õigeks toimimiseks võib olla vaja teha rakendusi. Kui ilmneb ootamatu tõrge või kui funktsiooni lõpuleviimiseks on vaja määramata parameetrit, on Office loodud nii, et kasutaja paluks kasutajal teha seda, mida kasutaja soovib teha. Mitteinteraktiivsete töölaual asuvat ühendvedude dialoogiboksi ei saa jätta. Seetõttu ei vasta see lõim lõputult (hangub). Kuigi teatud kodeeringuga seotud toimingud aitavad selle probleemi tõenäosust vähendada, ei saa need toimingud probleemi täielikult ära hoida. Ainuüksi see fakt teeb Office ' i rakenduste käivitamise serveripoolse keskkonnaga riski ja seda ei toetata.

  • Reentrancy ja tagi: serveripoolse komponendid peavad olema väga reentrant, multi-keermestatud com-komponendid, millel on minimaalne õhuliini ja suur läbilaskevõime mitmele kliendile. Office ' i rakendused on peaaegu kõigis aspektides täpselt vastupidine. Office ' i rakendused pole reentrant, STA-põhise automatiseerimise serverid, mille eesmärk on pakkuda ühe kliendi jaoks mitmekesiseid, kuid ressurssidega funktsioone. Rakendused pakuvad serveripoolse lahendusena veidi tagi. Lisaks on rakendused määranud piirid oluliste elementide (nt mälu) jaoks. Neid ei saa konfiguratsiooni kaudu muuta. Veelgi olulisem on see, et rakendused kasutavad globaalseid ressursse (nt mälu vastendatud failid, globaalsed lisandmoodulid või Mallid ja ühiskasutuses automatiseerimise serverid). See võib piirata selliste eksemplaride arvu, mida saab üheaegselt käitada ja mis võivad põhjustada võidujooksu, kui rakendused on konfigureeritud mitme kliendi keskkonnas. Arendajad, kes plaanivad kasutada mis tahes Office ' i rakendust mitu eksemplari, peavad samal ajal arvestama "puulimist" või serializing juurdepääsu Office ' i rakendusele, et vältida võimalikku tupikuid või andmete riknemist.

  • Elastsus ja stabiilsus: Office 2000, Office XP, Office 2003 ja Office 2007 kasutavad Microsoft Windows Installeri (MSI) tehnoloogiat, et luua lõppkasutaja jaoks hõlpsam installimine ja ise parandamine. MSI tutvustab mõistet "installi esmakordsel kasutamisel". See võimaldab funktsioone dünaamiliselt paigaldada või konfigureerida süsteemi käitamiseks või sagedamini konkreetse kasutaja jaoks. Serveripoolse keskkonna korral aeglustab see nii jõudlust kui ka tõenäosust, et võidakse kuvada dialoogiboks, mis palub kasutajal kinnitada installi või anda teile installi ketas. Kuigi see on mõeldud Office ' i vastupidavuse suurendamiseks lõppkasutaja tootena, on Office ' i MSI-funktsioonide rakendamine kahjulik ka serveripoolse keskkonnas. Lisaks ei saa Office ' i stabiilsust üldiselt kindlustada, kui Office ' i käitatakse serveripoolse, kuna see ei ole mõeldud sellist tüüpi kasutusviiside jaoks. Office ' i kasutamine võrgu serveri teenuse osana võib vähendada selle arvuti stabiilsust ja seetõttu võib see vähendada kogu võrgu stabiilsust.

  • Serveripoolse Turve: Office ' i rakendused ei olnud kunagi mõeldud serveripoolse kasutamiseks. Seetõttu ei võta Office ' i rakendused arvesse probleeme, mis on hajutatud komponentide näol. Office ei kinnita sissetulevaid taotlusi. Office ei kaitse teid tahtmatult makrode käivitamise eest või mõne teise serveri käivitamisest, mis võib makrosid käitada, teie serveripoolse koodist. Ärge avage faile, mis on anonüümne veebisaidilt serverisse üles laaditud. Viimati määratud turvasätete alusel saab server käivitada makrosid administraatori või süsteemi kontekstis, kus on täielikud õigused, ning seetõttu võib teie võrk ohustada teie võrku. Lisaks kasutab Office paljusid kliendipoolse komponente (nt lihtsaid MAPI-, WinInet-ja MSDAIPP), mis saavad vahemälu kliendi autentimise teabe töötlemiseks. Kui Office ' i on automatiseeritud serveripoolse, võib ühe eksemplariga teenust anda rohkem kui ühte klienti. Kui selle seansi jaoks on autentimise andmeid vahemällu talletatud, saab üks klient kasutada teise kliendi vahemällu talletatud mandaati. Seetõttu võib klient teiste kasutajate kehastamise korral saada juurdepääsuõiguse.

Lisaks tehnilistele probleemidele tuleb arvestada ka litsentsidega seotud probleeme. Praeguste litsentside juhised takistavad Office ' i rakenduste kasutamist serveris teenuse kliendi päringute jaoks, välja arvatud juhul, kui need kliendid ise on litsentseeritud Office ' i koopiad. Serveripoolse automatiseerimise abil Office ' i funktsioonide pakkumine litsentsimata tööjaamadele pole lõppkasutaja litsentsilepinguga (EULA) kaetud. Lisaks nendele probleemidele võib Office ' i serveripoolse automatiseerimise katsel ilmneda mõni järgmistest levinumatest tõrketeadetest.

  • Funktsioon CreateObject ja funktsioon CoCreateInstance tagastavad ühe järgmistest käivitamise tõrketeadetest ja seda ei saa automatiseerimiseks käivitada.

    Sõnum 1

    Run-time error "429": ActiveX-komponent ei saa objekti luua

    Sõnum 2

    Run-time error "70": luba keelatud

    Sõnum 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): serveri käivitamine ebaõnnestus

    Sõnum 4

    E_ACCESSDENIED (0x80070005): juurdepääs on keelatud

  • Office ' i dokumendi avamisel kuvatakse üks järgmistest tõrketeadetest.

    Sõnum 1

    Run-time error "5981" (0x800A175D): ei saa avada makro salvestusruumi

    Sõnum 2

    Run-time error ' 1004 ': meetod ' ~ ' objekti ' ~ ' ebaõnnestus

  • Funktsioon CreateObject ja funktsioon CoCreateInstance ei vasta enam või ei lõpeta kunagi ega võta kaua aega tagasi. Mõnes serveris on loomine kiire, kuid Windowsi sündmuselogisse kuvatakse 1004 tõrked, mis näitavad, et rakendus on peatatud.

  • Teatud funktsioonid nurjuvad ootamatult või lõpetavad reageerimise lõputult kasutaja märguande või muu dialoogiboksi tõttu, mis nõuab kasutaja tähelepanu.

  • Mitme päringu või stressi testimine põhjustab koodi nurjumise, reageerimast või Office ' i rakenduse loomise või lõpetamise korral krahhi. Sellisel juhul on protsess jäetud mällu ja seda ei saa lõpetada või kõik selle rakenduse eksemplarid, millelt see punkt automaatselt nurjub.

Muid probleeme või sõnumeid võidakse lisaks siin loetletud teemadele lisada, kuid need probleemid ilmnevad tavaliselt viiest peamisest probleemist, mis on selles artiklis varem loetletud. 

Serveripoolse automatiseerimise alternatiivid

Microsoft soovitab tungivalt, et arendajad leiaksid Office ' i automatiseerimiseks alternatiivid, kui neil on vaja arendada serveripoolse lahendusi. Office ' i kujunduse piirangute tõttu ei piisa kõigi probleemide lahendamiseks Office ' i konfiguratsioonis tehtud muudatustest. Microsoft soovitab tungivalt kasutada mitmeid alternatiive, mis ei nõua Office ' i installimist serverile ja mis saab teha kõige levinumaid toiminguid tõhusamalt ja kiiremini kui automatiseerimine. Enne kui kaasate Office ' i oma projekti serveripoolse komponendina, kaaluge alternatiive. Enamik serveripoolse automatiseerimise toiminguid hõlmavad dokumentide loomist või redigeerimist. Office 2007 toetab uusi avatud XML-failivorminguid, mis võimaldavad arendajatel luua, redigeerida, lugeda ja teisendada faili sisu serveripoolne. Need failivormingud kasutavad System.IO.Package.IO nimeruumi Microsoft .NET 3. x raamistikus, et redigeerida Office ' i faile Office ' i klientrakendusi ise kasutamata. See on soovitatav ja toetatud meetod Office ' i failide muudatuste haldamiseks teenusest. Avatud XML-failivormingud on avalik Standard. 

Microsoft pakub SDK-vormingut avatud XML-failivormingute töötlemiseks .NET 3. x raamistikust. Lisateavet SDK ja selle kohta, kuidas kasutada Open XML-i failide loomiseks või redigeerimiseks SDK-d, leiate järgmistest Microsoft Developer Networki (MSDN-i) veebilehtedest.

XML-i SDK dokumentatsiooni avamine

Kuidas: Office Open XML-i vormingute dokumentidega manipuleerimine

Word 2007 failide manipuleerimine Open XML-i objektimudeli abil (osa 1/3)

Word 2007 failide manipuleerimine Open XML-i objektimudeli abil (2 osa 3)

Word 2007 failide manipuleerimine Open XML-i objektimudeli abil (3 osa 3)

Exceli 2007 ja PowerPoint 2007 failide manipuleerimine Open XML-i objektimudeli abil (osa 1/2)

Exceli 2007 ja PowerPoint 2007 failide manipuleerimine Open XML-i objektimudeli (2. osa)

Serveripoolse dokumendi loomise lahenduste loomine Open XML-i objektimudeli abil (osa 1/2)

Serveripoolse dokumendi loomise lahenduste loomine Open XML-i objektimudeli abil (2 osa 2)

Kui avate avatud XML-failid ASP-st või ASP.NET, peate sisestama oma voona kasutatavale sisule õige mitmeotstarbelise Interneti-meili laiendi (MIME) tüübi. Office 2007 failide MIME-tüüpide loendi leiate järgmisest veebisaidilt.

Office 2007 failivormingu MIME-tüübid HTTP-sisu voogesituse jaoks

Kui sihite ainult Office 2007 kliente ja te ei soovi kasutada lahenduses avatud XML-i kasutamist, saate kasutada muid Office ' i failivorminguid (nt HTML-, XML-ja RTF-vormingus). Seejärel saate need failid klientidele voogesitada MIME-tüübi abil, nii et tulemuseks saadav tekst kuvatakse Office ' is. Dokumenti saab redigeerida, salvestada ja isegi serveris asuva ASP abil serverisse tagastada. Lisateavet nende teemade kohta ja näidete kohta, mis näitavad, kuidas neid rakendada, klõpsake Microsofti teabebaasi artiklite kuvamiseks järgmisi artiklinumbreid:

198703 Exceli automatiseerimine kliendipoolse VBScripti kaudu

278973 ExcelADO demonstreerib, kuidas kasutada ADO-s andmete lugemiseks ja kirjutamiseks Exceli töövihikutes

286023 Kuidas kasutada VB ActiveX-i komponenti Word Automation for Internet Explorerist  

Kui teie ärile on vaja Office 97, Office 2000, Office XP ja Office 2003 binaarfailide loomise server-i failivorminguid, pakuvad kolmanda osapoole tootjad teile sobivaid komponente. Microsoft ei paku selliseid komponente, nii et peate lahenduse ise üles ehitama või ostma mõne muu tootja müüja. Saadaval on mitu muu tootja toodet. Iga lahendus peaks uurima, et hankija vastab teie ärivajadustele kõige paremini.

Kui soovite luua oma lahenduse, mis redigeerib Office 97, Office 2000, Office XP ja Office 2003 binaarne failivormingud otse, saate hankida tasuta failivormingu SPETSIFIKATSIOONID Microsoft Open Specificationi Promise (haldaja) tingimuste alusel. Teie loodud dokumentide või toodete jaoks pole tehnilist tuge saadaval, kuid dokumentatsioon on saadaval. 

Samuti võivad serveripoolse lahendused lubada kasutajatel faile üles laadida ja seejärel lasta serveril failid veebis või muudes meediumites vaatamiseks renderdada. Microsoft töötab praegu selliste funktsioonide pakkumiseks ja pakub Microsoft Exceli teenustes selle võimaluse varasemat versiooni. Exceli teenused on uus serveri tehnoloogia, mis sisaldub rakenduses Microsoft Office SharePoint Server 2007, mis võimaldab teil Exceli töövihikuid laadida, arvutada ja kuvada Office SharePoint Server 2007. Exceli teenuste kohta lisateabe saamiseks külastage järgmisi Microsoft Developer Networki (MSDN-i) veebisaite.

Exceli teenuste ülevaade

Lühiülevaade: kohandatud rakenduse arendamine Exceli veebiteenuste abil

Ärirakenduste loomine Exceli teenuste ja Office Open XML-i vormingute abil Word Automation Services on uus teenuserakendus rakenduses SharePoint Server 2010. Word Automation Services pakub dokumentidest järelevalveta, dokumentide teisendamist vormingusse, mida Microsoft Wordi klientrakendus toetab.

Teenuste Word Automation Services ülevaade

Teenuste Word Automation Services tutvustus Peate hindama, millised suvandid selles artiklis kirjeldavad teie vajadustele vastavaid võimalusi, ja kuidas on kõige parem lahendus juurutada. Selles artiklis toodud teave pole garanteeritud kõigi klientide probleemide lahendamiseks. Enne lahenduse juurutamist soovitatakse lahendust põhjalikult testida.

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×