Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Súhrn

Vývojári môžu použiť automatizáciu v balíku Microsoft Office na tvorbu vlastných riešení, ktoré používajú funkcie a funkcie, ktoré sú súčasťou produktu balíka Office. Hoci sa takýto programový vývoj môže implementovať v klientskom systéme s relatívnou ľahkosťou, môže dôjsť k množstvu komplikácií, ak sa Automatizácia uskutočňuje z kódu na strane servera, ako je napríklad Microsoft Active Server Pages (ASP), ASP.NET, DCOM alebo služba Windows NT. Tento článok sa zaoberá komplikáciami, ktoré môžu vývojári čeliť. Článok ponúka aj alternatívy automatizácie, ktorá môže urýchliť výkon. Vývojári by si však mali uvedomiť, že návrhy, ktoré poskytuje tento článok, sú len na informačné účely. Spoločnosť Microsoft neodporúča ani nepodporuje automatizáciu balíka Office na strane servera.

Poznámka

V tomto kontexte sa prerozdeľuje Databázový mechanizmus Accessu a program Access Runtime sa považujú za súčasti balíka Microsoft Office. Výraz "Server-Side" sa vzťahuje aj na kód, ktorý je spustený na pracovnej stanici Windowsu, ak je kód spustený z pracovnej stanice Windowsu inej ako Interaktívna stanica používateľa, ktorý je prihlásený. Kód, ktorý sa spustil prostredníctvom plánovača úloh v rámci SYSTÉMového konta, sa napríklad spúšťa v rovnakom prostredí ako kód ASP na strane servera alebo kód DCOM. Z tohto dôvodu sa môžu vyskytnúť mnohé problémy, ktoré popisuje tento článok. Ďalšie informácie o pracovných staniciach s Windowsom a o COM nájdete v časti Ďalšie informácie a v časti odkazy.

Ďalšie informácie

Všetky aktuálne verzie balíka Microsoft Office boli navrhnuté, testované a nakonfigurované tak, aby sa spustili ako produkty koncového používateľa na klientskej pracovnej stanici. Predpokladajú interaktívnu pracovnú plochu a profil používateľa. Neposkytujú úroveň reentrancy alebo zabezpečenia, ktorá je potrebná na uspokojenie potrieb súčastí na strane servera, ktoré sú navrhnuté tak, aby sa spúšťali bez obsluhy. Spoločnosť Microsoft v súčasnosti neodporúča a nepodporuje automatizáciu aplikácií balíka Microsoft Office z ľubovoľnej bezobslužnej, neinteraktívnej klientskej aplikácie alebo súčasti (vrátane služieb ASP, ASP.NET, DCOM a NT), pretože Office môže vykazovať nestabilné správanie a/alebo zablokovanie pri spustení balíka Office v tomto prostredí. Ak vytvárate riešenie, ktoré sa spúšťa v kontexte na strane servera, mali by ste sa pokúsiť použiť súčasti, ktoré boli v bezpečí pri automatickom vykonávaní. Alebo by ste sa mali pokúsiť nájsť alternatívy, ktoré umožňujú, aby sa aspoň časť kódu spustila na strane klienta. Ak používate aplikáciu balíka Office z riešenia na strane servera, v aplikácii sa nezobrazí veľa potrebných funkcií, ktoré sa majú úspešne spustiť. Okrem toho budete mať riziko pri stabilite celkového riešenia.

Problémy pri používaní automatizácie balíka Office na strane servera

Vývojári, ktorí sa snažia používať Office na strane servera, si musia uvedomiť päť hlavných oblastí, v ktorých sa Office chová odlišne, ako sa predpokladalo v prostredí. Ak sa váš kód úspešne spustí, musíte tieto problémy riešiť a čo najviac minimalizovať ich účinky. Pozorne zvážte tieto problémy pri vytváraní aplikácie. Jedným riešením nie je možné riešiť všetky problémy. Rôzne návrhy vyžadujú, aby ste prvky uprednostňovali odlišne.

  • Identita používateľa: aplikácie balíka Office predpokladajú identitu používateľa pri spustení aplikácií, a to aj vtedy, keď automatizácia spustí aplikácie. Aplikácie sa pokúšajú inicializovať panely s nástrojmi, ponuky, možnosti, tlačiarne a niektoré doplnky na základe nastavení v podregistri používateľa pre používateľa, ktorý aplikáciu spustil. Mnohé služby bežia v časti kontá, ktoré nemajú žiadne používateľské profily (napríklad systémové konto alebo kontá IWAM_ [názov_servera]). Preto sa Office nemusí správne inicializovať pri spustení. V tejto situácii Office vráti chybu na funkciu CreateObject alebo funkciu CoCreateInstance . Aj v prípade, že sa aplikácia balíka Office môže spustiť, ďalšie funkcie nemusia fungovať správne, ak neexistuje žiadny profil používateľa.

  • Interaktivita s pracovnou plochou: aplikácie balíka Office predpokladajú, že sa spúšťajú v rámci interaktívnej pracovnej plochy. V niektorých prípadoch môže byť potrebné, aby aplikácie boli viditeľné pre niektoré funkcie automatizácie, aby fungovali správne. Ak sa vyskytne neočakávaná chyba alebo ak je na vykonanie funkcie potrebný neurčený parameter, balík Office je navrhnutý tak, aby zobrazil používateľovi výzvu s modálnym dialógovým oknom, v ktorom sa používateľ spýta, čo chce používateľ urobiť. Modálne dialógové okno na neinteraktívnej pracovnej ploche nie je možné odmietnuť. Preto vlákno prestane reagovať (zablokuje sa) natrvalo. Hoci niektoré postupy kódovania môžu pomôcť znížiť pravdepodobnosť tohto problému, tieto postupy nemôžu úplne zabrániť problému. Táto skutočnosť samotná spôsobuje, že aplikácie balíka Office sú v prostredí na strane servera riskantné a nepodporované.

  • Reentrancy a škálovateľnosť: súčasti na strane servera musia byť vysoko reúčastníkmi, komponenty com s viacerými vláknami, ktoré majú minimálne režijné náklady a vysokú priepustnosť pre viacerých klientov. Aplikácie balíka Office sú v takmer všetkých ohľadoch presný opak. Aplikácie balíka Office nie sú reúčastníkmi, automatizačné servery založené na STA, ktoré sú navrhnuté tak, aby poskytovali rozmanité funkcie, ktoré sú náročné na zdroje pre jedného klienta. Aplikácie ponúkajú malú škálovateľnosť ako riešenie na strane servera. Okrem toho majú aplikácie stabilné limity na dôležité prvky, ako je napríklad pamäť. Tieto zmeny nie je možné zmeniť pomocou konfigurácie. Dôležitejšie je, že aplikácie využívajú globálne zdroje, ako sú napríklad pamäť priradených súborov, globálne doplnky alebo šablóny a zdieľané automatizačné servery. Môže to obmedziť počet inštancií, ktoré môžu byť spustené súčasne a môžu viesť k podmienkam pretekov v prípade, že sú aplikácie nakonfigurované v prostredí s viacerými klientmi. Vývojári, ktorí plánujú spustiť viac ako jednu inštanciu ľubovoľnej aplikácie balíka Office v rovnakom čase, musia zvážiť "združovanie" alebo serializáciu prístupu k aplikácii balíka Office, aby sa predišlo možným uviaznutiam alebo poškodeniu údajov.

  • Odolnosť a stabilita: Office 2000, Office XP, Office 2003 a Office 2007 používajú technológiu Microsoft Windows Installer (MSI) na zjednodušenie inštalácie a automatickej opravy pre koncového používateľa. MSI predstavuje koncept inštalácie pri prvom použití. Táto funkcia umožňuje dynamicky nainštalovať alebo nakonfigurovať funkcie v čase spustenia systému alebo častejšie pre konkrétneho používateľa. V prostredí na strane servera sa tento postup spomaľuje a zvyšuje pravdepodobnosť, že sa môže zobraziť dialógové okno s výzvou na schválenie inštalácie alebo na vytvorenie inštalačného disku. Hoci je tento cieľ zameraný na zvýšenie odolnosti balíka Office ako koncového používateľa, implementácia funkcií MSI v Office je kontraproduktívna v prostredí na strane servera. Okrem toho stabilita balíka Office vo všeobecnosti nemôže byť zabezpečená, keď je balík Office spustený na strane servera, pretože nebol navrhnutý alebo testovaný pre tento typ používania. Používanie balíka Office ako súčasti služby na sieťovom serveri môže znížiť stabilitu tohto počítača, a preto môže znížiť stabilitu celej siete.

  • Zabezpečenie na strane servera: aplikácie balíka Office neboli nikdy určené na použitie na strane servera. Preto aplikácie balíka Office nezohľadňujú problémy zabezpečenia, ktoré distribuujú súčasti. Office neoveruje prichádzajúce žiadosti. Office vás tiež nechráni pred neúmyselným spustením makier alebo spustením iného servera, ktorý by mohol spúšťať makrá, z kódu na strane servera. Neotvárajte súbory nahraté na server z anonymnej webovej lokality. Na základe naposledy nastavených nastavení zabezpečenia môže server spúšťať makrá v rámci správcu alebo systémového kontextu s úplnými oprávneniami, a preto môže ohroziť vašu sieť. Okrem toho Office používa veľa súčastí na strane klienta (napríklad jednoduché rozhranie MAPI, WinInet a MSDAIPP), ktoré môžu informácie o overovaní klienta vyrovnávacej pamäte použiť na spracovanie rýchlosti. Ak je Office automatizovaný na strane servera, jedna inštancia môže obsluhovať viac ako jedného klienta. Ak boli pre danú reláciu uložené informácie o overovaní, jeden klient môže použiť poverenia iného klienta s vyrovnávacou pamäťou. Klient preto môže získať povolenia na prístup, ktoré neudelili, a to prostredníctvom zosobnenia ostatných používateľov.

Okrem technických problémov je potrebné zvážiť aj problémy s licenciou. Aktuálne pokyny na udeľovanie licencií zabraňujú tomu, aby sa aplikácie balíka Office používali na serveri na klientskych požiadavkách služieb, pokiaľ títo klienti nemajú licencované kópie balíka Office. Používanie automatizácie na strane servera na poskytnutie funkcií balíka Office na pracovné stanice bez platnej licencie sa nevzťahuje na licenčnú zmluvu koncového používateľa (EULA). Okrem týchto problémov sa môže pri pokuse o automatizáciu na strane servera balíka Office vyskytnúť jedna z týchto bežných chýb:

  • Funkcia CreateObject a funkcia CoCreateInstance vrátia jednu z nasledujúcich chybových hlásení spustenia a nie je možné ju spustiť na automatizáciu.

    Správa 1

    Chyba spustenia "429": súčasť ActiveX nedokáže vytvoriť objekt

    Hlásenie 2

    Chyba spustenia "70": Permission denied

    Hlásenie 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): spustenie servera zlyhalo

    Hlásenie 4

    E_ACCESSDENIED (0x80070005): odmietnutý prístup

  • Keď otvoríte dokument balíka Office, zobrazí sa jedno z nasledujúcich chybových hlásení.

    Správa 1

    Chyba spustenia "5981" (0x800A175D): nedá sa otvoriť ukladací priestor makra

    Hlásenie 2

    Chyba spustenia "1004": metóda ' ~ ' objektu ' ~ ' zlyhalo

  • Funkcia CreateObject a funkcia CoCreateInstance prestane reagovať a nikdy sa nedokončili alebo sa vrátia príliš dlho. Na niektorých serveroch je vytvorenie rýchle, ale v denníku udalostí systému Windows sa zobrazujú chyby 1004, ktoré naznačujú, že aplikácia bola zastavená.

  • Niektoré funkcie zlyhajú neočakávane alebo prestane reagovať na neurčitú dobu, pretože upozornenie používateľa alebo iné dialógové okno vyžadujúce pozornosť používateľov.

  • Spustenie viacerých požiadaviek alebo stresového testovania spôsobí zlyhanie kódu, prestane reagovať alebo zlyháva pri vytváraní alebo ukončení aplikácie balíka Office. V takom prípade sa proces ponechá v pamäti a nie je možné ho ukončiť alebo všetky inštancie aplikácie, ktorá je automatizovaným zlyhaním od tohto bodu.

Ďalšie problémy alebo správy sa môžu zobraziť okrem tých, ktoré sú tu uvedené, ale tieto problémy sa zvyčajne vyskytujú v dôsledku piatich hlavných problémov, ktoré sú uvedené vyššie v tomto článku. 

Alternatívy k automatizácii na strane servera

Spoločnosť Microsoft dôrazne odporúča, aby vývojári našli alternatívy automatizácie balíka Office, ak potrebujú vyvinúť riešenia na strane servera. Z dôvodu obmedzení návrhu balíka Office nie sú zmeny konfigurácie balíka Office postačujúce na vyriešenie všetkých problémov. Spoločnosť Microsoft dôrazne odporúča niekoľko alternatív, ktoré nevyžadujú inštaláciu balíka Office, a ktoré môžu vykonávať väčšinu bežných úloh efektívnejšie a rýchlejšie ako automatizácia. Skôr než zapojíte Office ako súčasť na strane servera v projekte, zvážte alternatívy. Väčšina úloh automatizácie na strane servera zahŕňa vytváranie alebo úpravu dokumentov. Office 2007 podporuje nové formáty súborov Open XML, ktoré umožňujú vývojárom vytvárať, upravovať, čítať a transformovať obsah súboru na strane servera. Tieto formáty súborov používajú priestor názvov System.IO.Package.IO v rámci platformy Microsoft .NET 3. x na úpravu súborov balíka Office bez použitia samotných klientskych aplikácií balíka Office. Toto je odporúčaný a podporovaný spôsob spracovania zmien v súboroch balíka Office zo služby. Formáty súborov Open XML sú verejným štandardom. 

Spoločnosť Microsoft poskytuje súpravu SDK na manipuláciu s otvorenými formátmi súborov XML z rámca .NET 3. x. Ďalšie informácie o súprave SDK a o tom, ako používať súpravu SDK na vytváranie alebo úpravu otvorených súborov XML, nájdete na týchto webových lokalitách spoločnosti Microsoft Developer Network (MSDN):

Otvorená Dokumentácia SDK XML

Postup: manipulácia s dokumentmi formátu Office Open XML

Manipulácia s Wordom 2007 súbormi s otvoreným objektovým modelom XML (časť 1 z 3)

Manipulácia s Wordom 2007 súbormi s otvoreným objektovým modelom XML (časť 2 z 3)

Manipulácia s Wordom 2007 súbormi s otvoreným objektovým modelom XML (časť 3 z 3)

Manipulácia s Excelom 2007 a PowerPointom 2007 súbormi s otvoreným objektovým modelom XML (časť 1 z 2)

Manipulácia s Excelom 2007 a PowerPointom 2007 súbormi s otvoreným objektovým modelom XML (časť 2 z 2)

Vytvorenie riešenia na vytváranie dokumentov na strane servera s použitím objektového modelu Open XML (časť 1 z 2)

Vytvorenie riešenia na vytváranie dokumentov na strane servera s použitím objektového modelu Open XML (časť 2 z 2)

Pri streamovaní otvorených súborov XML z ASP alebo ASP.NET je nutné zadať správny viacúčelový typ rozšírenia Internet mail (MIME) pre obsah, ktorý vysielate. Ak chcete vytvoriť zoznam typov MIME pre súbory balíka Office 2007, navštívte nasledujúcu webovú lokalitu:

Typy MIME formátu súborov balíka Office 2007 pre streaming obsahu HTTP

Ak sa zameriavajú iba na klientov služieb Office 2007 a nechcete, aby sa v riešení vyžadovalo používanie otvoreného súboru XML, môžete použiť aj iné nebinárne formáty súborov balíka Office, ako je napríklad HTML, XML a RTF. Tieto súbory potom môžete streamovať klientovi pomocou typu MIME, aby sa výsledný text zobrazil v balíku Office. Dokument je možné upraviť, Uložiť a dokonca sa vrátiť na server pomocou ASP na serveri. Ďalšie informácie o niektorej z týchto tém a príklady, ktoré ukazujú, ako ich implementovať, nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné čísla článkov:

198703 Automatizácia Excelu zo stránky VBScript na strane klienta

278973 ExcelADO ukazuje, ako používať ADO na čítanie a zapisovanie údajov v zošitoch programu Excel

286023 Ako používať súčasť VB ActiveX na automatizáciu Wordu z Internet Explorera  

Ak vaša firma vyžaduje vytvorenie serverových formátov balíka Office 97, Office 2000, Office XP a binárneho súboru balíka Office 2003, dodávatelia tretích strán ponúkajú súčasti, ktoré vám môžu pomôcť. Spoločnosť Microsoft neposkytuje žiadne takéto súčasti, takže budete musieť vytvoriť riešenie sami alebo si ho zakúpiť od nezávislého dodávateľa. K dispozícii je veľa rôznych produktov tretích strán. Všetky riešenia by ste mali preskúmať tak, aby čo najlepšie zodpovedali dodávateľovi vašim potrebám podniku.

Ak chcete vytvoriť vlastné riešenie, ktoré umožňuje priamo upravovať formáty súborov balíka Office 97, Office 2000, Office XP a Office 2003, môžete získať špecifikácie formátu súboru, ktoré sú k dispozícii bezplatne v rámci podmienok prísľubu Microsoft Open Specification (OSP). Pre dokumentáciu alebo produkty, ktoré vytvoríte, nie je k dispozícii Technická podpora, ale dokumentácia je k dispozícii. 

Riešenie na strane servera môže tiež chcieť používateľom umožniť nahrávať súbory a potom server vykresliť súbory na zobrazenie na webe alebo na iných médiách. Spoločnosť Microsoft v súčasnosti pracuje na tom, že ponúka tieto funkcie a poskytuje skorú verziu tejto možnosti v službách Microsoft Excel Services. Služby Excel Services predstavujú novú serverovú technológiu, ktorá je zahrnutá v programe Microsoft Office SharePoint Server 2007, a ktorá umožňuje načítať, vypočítať a Zobraziť excelové zošity na serveri Office SharePoint Server 2007. Ďalšie informácie o službách Excel Services nájdete na týchto webových lokalitách spoločnosti Microsoft Developer Network (MSDN):

Prehľad služieb Excel Services

Návod: vytvorenie vlastnej aplikácie pomocou webových služieb Excel Web Services

Vytváranie podnikových aplikácií pomocou excelových služieb a formátov Office Open XML Služba Word Automation Services je novou aplikáciou služby na serveri SharePoint Server 2010. Služby Word Automation Services poskytujú bezobslužnú konverziu dokumentov na strane servera do formátov podporovaných klientskou aplikáciou Microsoft Wordu.

Prehľad služieb Word Automation Services

Úvodné informácie o službách automatizácie Wordu Je potrebné vyhodnotiť, ktoré z možností, ktoré tento článok popisuje, vyhovuje vašim potrebám a ako najlepšie nasadiť riešenie. Informácie, ktoré poskytuje tento článok, nie sú garantované na vyriešenie všetkých problémov pre všetkých klientov. Odporúčame vám, aby ste riešenie dôkladne otestovali pred nasadením riešenia.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×