Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Shrnutí

Vývojáři můžou v Microsoft Office používat automatizaci pro vlastní řešení, která využívají funkce a funkce, které jsou integrované v Office. Přestože je možné tento programový vývoj implementovat v klientském systému s relativním náběh/doběhm, může dojít k mnoha komplikacím, když se automatizace uskuteční od kódu na straně serveru, jako je Microsoft Active Server Pages (ASP), ASP.NET, DCOM nebo Windows NT Service. Tento článek popisuje komplikace, které můžou udělat vývojáři. Článek nabízí také alternativy automatizace, které mohou urychlit výkon. Vývojáři si ale uvědomte, že návrhy uvedené v tomto článku jsou pouze pro informační účely. Společnost Microsoft nedoporučuje ani nepodporuje automatizaci Office na straně serveru.

Poznámka:

V tomto kontextu se Redistribuovatelná verze databázového stroje Accessu a aplikace Access Runtime považují za součásti systému Microsoft Office. Termín "na straně serveru" se také vztahuje na kód, který běží na pracovní stanici se systémem Windows, pokud je kód spouštěn z jiné pracovní stanice systému Windows, než je interaktivní stanice aktuálně přihlášeného uživatele. Například kód, který je spuštěný plánovačem úloh pod účtem SYSTEM, běží ve stejném prostředí jako kód ASP na straně serveru nebo jako kód DCOM. Proto může nastat řada problémů, které tento článek popisuje. Další informace o pracovních stanicích Windows a o modelu COM najdete v části Další informace a v části odkazy.

Další informace

Všechny aktuální verze Microsoft Office byly navrženy, testovány a nakonfigurovány tak, aby byly na klientské pracovní stanici spouštěny jako produkty koncového uživatele. Přebírají interaktivní plochu a profil uživatele. Neobsahují úroveň reentrancy nebo zabezpečení potřebnou k uspokojení potřeb součástí na straně serveru, které jsou určené pro bezobslužné spuštění. Společnost Microsoft v současné době nedoporučuje a nepodporuje automatizaci aplikací systému Microsoft Office z jakékoli bezobslužné neinteraktivní klientské aplikace nebo součásti (včetně stránek ASP, ASP.NET, DCOM a NT), protože při spuštění Office v tomto prostředí může Office vykazovat nestabilní chování nebo zablokování. Pokud vytváříte řešení, které běží v kontextu na straně serveru, měli byste zkusit použít součásti, které byly zabezpečené pro bezobslužné spuštění. Nebo můžete zkusit najít alternativy, které umožňují aspoň část kódu ke spuštění klienta. Pokud používáte aplikaci Office z řešení na straně serveru, nebude celá řada potřebných možností pro úspěšné spuštění. Navíc budete mít rizika se stabilitou celkového řešení.

Problémy s automatizací Office na straně serveru

Vývojáři, kteří se pokusí používat Office v řešení na straně serveru, musí mít vědět pět hlavních oblastí, ve kterých se Office chová jinak, než se očekává v důsledku prostředí. Pokud se váš kód úspěšně spouští, musíte tyto problémy řešit a minimalizovat jejich účinky co nejvíce. Tyto problémy pečlivě zvažte při sestavování aplikace. V jednom řešení se nedají řešit všechny problémy. Různé návrhy vyžadují, abyste jednotlivé prvky určili jinak.

  • Identita uživatele: aplikace Office předpokládají identitu uživatele při spuštění aplikací, a to i v případě, že automatizace spouští aplikace. Aplikace se snaží inicializovat panely nástrojů, nabídky, možnosti, tiskárny a některé doplňky na základě nastavení v podregistru uživatele pro uživatele, který spouští aplikaci. Mnohé služby jsou spouštěny v účtech, které nemají profily uživatelů (například systémový účet nebo účty IWAM_ [název_serveru]). Proto se může stát, že se Office při spuštění neinicializuje správně. V této situaci vrátí Office chybu ve funkci CreateObject nebo CoCreateInstance . I když může být spuštěna aplikace Office, nebudou možná fungovat správně, pokud žádný profil uživatele neexistuje.

  • Interaktivita k ploše: aplikace Office předpokládají, že jsou spouštěny v rámci interaktivní plochy. Za určitých okolností může být nutné, aby některé funkce automatizace fungovaly správně. Pokud dojde k neočekávané chybě nebo pokud je k dokončení funkce potřeba neurčeného parametru, Office je určený k tomu, aby uživateli zobrazil modální dialogové okno s dotazem, co chce uživatel udělat. Modální dialogové okno na neinteraktivní ploše nelze zrušit. Tento podproces proto přestane reagovat (zablokuje se). Ačkoli některé postupy kódování mohou pomoci snížit pravděpodobnost tohoto problému, tyto postupy nemůžou tento problém zcela zabránit. Tento fakt sám dělá spuštěné aplikace Office z prostředí na straně serveru riskantní a nepodporované.

  • Reentrancy a škálovatelnost: součásti na straně serveru musí být vysoce vícenásobně integrované, vícevláknové součásti COM, které mají minimální režii a vysokou propustnost pro více klientů. Aplikace Office jsou téměř ve všech ohledech přesně od sebe. Aplikace Office jsou automatizační servery založené na modelu STA, které jsou určené k tomu, aby poskytovaly různé funkce náročné na prostředky pro jednoho klienta. V aplikacích se nejedná o řešení na straně serveru. Kromě toho mají aplikace pevně stanovené limity pro důležité prvky, jako je třeba paměť. Nelze je změnit konfigurací. Důležitější: aplikace používají globální prostředky, jako jsou soubory mapované paměti, globální doplňky nebo šablony a sdílené automatizační servery. To může omezit počet výskytů, které můžou běžet souběžně, a když jsou aplikace nakonfigurované v prostředí s více klienty, může vést ke sporům. Vývojáři, kteří plánují spuštění více instancí libovolné aplikace Office současně, musí zvážit "sdružování" nebo serializace přístupu do aplikací Office, aby se předešlo potenciálním zablokování nebo poškození dat.

  • Odolnost a stabilita: Office 2000, Office XP, Office 2003 a Office 2007 používají technologii Microsoft Windows Installer (MSI), která uživateli usnadňují instalaci a automatickou opravu. Instalační služba MSI zavádí pojem "instalace při prvním použití". To umožňuje dynamickou instalaci a konfiguraci funkcí v době běhu systému nebo častěji pro konkrétního uživatele. V prostředí na straně serveru zpomaluje výkon a zvyšuje pravděpodobnost, že se může zobrazit dialogové okno s žádostí uživatele o schválení instalace nebo o instalační disk. I když je to navrženo pro zvýšení odolnosti Office jako produktu koncového uživatele, implementace funkcí MSI v Office se counterproductive v prostředí na straně serveru. Navíc nemůžete zajistit stabilitu Office obecně, když Office běží na straně serveru, protože nebyl navržený nebo testován pro tento typ použití. Pokud používáte Office jako součást služby na síťovém serveru, může dojít ke snížení stability počítače, a proto může dojít ke snížení stability celé sítě.

  • Zabezpečení na straně serveru: aplikace Office se nikdy nezamýšlely používat na straně serveru. Aplikace Office proto neberou v úvahu problémy zabezpečení, které čelí distribuovaným součástem. Office neověřuje příchozí žádosti. Office také nechrání před neúmyslným spuštěním maker ani nespouští jiný server, který by mohl spouštět makra, a to z kódu na straně serveru. Neotevírejte soubory, které jsou nahrány na server z anonymního webu. Na základě nastavení zabezpečení, která byla naposledy nastavena, může server spustit makra pod kontextem správce nebo systému s úplnými oprávněními a může tedy ohrozit vaši síť. Office navíc používá mnoho klientských součástí (například Simple MAPI, WinInet a MSDAIPP), které mohou při zpracování urychlit zpracování informací o ověřování klienta. Pokud je Office automatizovaný na straně serveru, jedna instance smí obsluhovat více klientů. Pokud byly ověřovací informace pro tuto relaci uloženy do mezipaměti, může jeden klient použít přihlašovací údaje z mezipaměti jiného klienta. Proto by klient mohl získat neoprávněná přístupová oprávnění zosobněním jiných uživatelů.

Kromě technických problémů musíte taky zvážit problémy s licencováním. Aktuální pokyny k licencování: Zabraňte používání aplikací Office na serveru pro poskytování požadavků klientů, pokud tyto klienty nemají licencované kopie Office. Licenční smlouvu s koncovým uživatelem (EULA) nezahrnuje používání automatizace na straně serveru k poskytování funkcí systému Office pro pracovní stanice bez licence. Kromě těchto problémů může při pokusu o automatizaci Office na straně serveru dojít k jedné z následujících běžných chyb:

  • Funkce CreateObject a funkce CoCreateInstance vrátí jednu z následujících chybových zpráv při běhu a nelze ji spustit pro automatizaci.

    Zpráva 1

    Chyba za běhu ' 429 ': komponenta ActiveX nemůže vytvořit objekt.

    Zpráva 2

    Chyba za běhu ' 70 ': odepření oprávnění

    Zpráva 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): spuštění serveru se nezdařilo.

    Zpráva 4

    E_ACCESSDENIED (0x80070005): přístup odepřen

  • Při otevření dokumentu Office se zobrazí jedna z následujících chybových zpráv.

    Zpráva 1

    Chyba za běhu ' 5981 ' (0x800A175D): Nelze otevřít úložiště maker

    Zpráva 2

    Chyba za běhu ' 1004 ': metoda ~ objektu ~ se nezdařila.

  • Funkce CreateObject a funkce CoCreateInstance přestanou reagovat a nikdy se neukončí nebo se vrátí příliš dlouho. Na některých serverech je vytváření rychlé, ale v protokolu událostí Windows se zobrazí chyby 1004, které označují, že aplikace byla zastavena.

  • Některé funkce byly neočekávaně úspěšné nebo přestaly reagovat na neomezeně kvůli uživatelskému upozornění nebo jinému dialogu, který vyžaduje pozornost uživatele.

  • Spuštění více žádostí nebo zátěžového testu způsobí, že se kód nezdaří, přestat reagovat nebo došlo k chybě při vytváření nebo ukončení aplikace Office. Pokud k tomu dojde, je proces buď ponechán v paměti a nelze ho ukončit, nebo všechny instance aplikace, u kterých probíhá automatická akce, od tohoto okamžiku nefunguje.

Další problémy nebo zprávy se můžou objevit kromě těch, které jsou uvedené v tomto článku, ale obvykle se vyskytují v důsledku pěti hlavních problémů, které jsou uvedené v tomto článku. 

Alternativy automatizace na straně serveru

Společnost Microsoft důrazně doporučuje, aby vývojáři našli alternativy k automatizaci Office, pokud potřebují vyvinout řešení na straně serveru. Kvůli omezením v návrhu Office nestačí změny konfigurace Office vyřešit všechny problémy. Společnost Microsoft důrazně doporučuje řadu alternativ, které nevyžadují instalaci Office na straně serveru a které umožňují provádět většinu běžných úkolů efektivněji a rychleji než automatizovat. Než budete chtít Office v projektu použít jako součást na straně serveru, zvažte alternativy. Většina úkolů automatizace na straně serveru zahrnuje vytváření nebo úpravy dokumentů. Office 2007 podporuje nové formáty Open XML, které umožňují vývojářům vytvářet, upravovat, číst a transformovat obsah souborů na straně serveru. Tyto formáty souborů používají obor názvů System.IO.Package.IO v rozhraní Microsoft .NET 3. x Framework k úpravám souborů Office bez samotných klientských aplikací Office. Toto je doporučená a podporovaná metoda zpracování změn souborů Office ze služby. Formáty souborů Open XML jsou veřejné. 

Microsoft nabízí sadu SDK pro práci s formáty souborů Open XML z platformy .NET 3. x. Další informace o sadě SDK a o tom, jak pomocí sady SDK vytvořit nebo upravit soubory Open XML, najdete na následujících webech MSDN (Microsoft Developer Network):

Dokumentace k otevření XML sady SDK

Postup: manipulace s dokumenty ve formátech otevřených souborů Office Open XML

Manipulace se soubory aplikace Word 2007 pomocí modelu Open XML (část 1 ze 3)

Manipulace se soubory aplikace Word 2007 pomocí modelu Open XML (část 2 ze 3)

Manipulace se soubory aplikace Word 2007 pomocí modelu Open XML (část 3 ze 3)

Manipulace se soubory Excel 2007 a PowerPointem 2007 pomocí modelu Open XML (část 1 z 2)

Manipulace se soubory Excel 2007 a PowerPointem 2007 pomocí modelu Open XML (část 2 ze 2)

Tvorba řešení generování dokumentů na straně serveru pomocí modelu Open XML (část 1 ze 2)

Tvorba řešení generování dokumentů na straně serveru pomocí modelu Open XML (část 2 ze 2)

Když v datovém proudu otevřete soubory Open XML z ASP nebo z ASP.NET, musíte pro obsah, který máte datový proud, zadat správné typy MIME (Multipurpose Internet Mail Extension). Seznam typů MIME pro soubory Office 2007 najdete na následujícím webu:

Office 2007 typy MIME pro datový proud obsahu HTTP

Pokud chcete směrovat jenom klienty mimo Office 2007 a nechcete vyžadovat používání Open XML v řešení, můžete použít jiné nebinární formáty souborů Office, jako je HTML, XML a RTF. Potom můžete tyto soubory streamovat do klienta pomocí typu MIME, aby se výsledný text zobrazil v Office. Dokument je možné upravovat, ukládat a dokonce vracet na server pomocí ASP na serveru. Další informace o některém z těchto tématech a příklady jejich implementace najdete v následujících článcích znalostní báze Microsoft Knowledge Base:

198703 Jak automatizovat Excel z jazyka VBScript na straně klienta

278973 ExcelADO ukazuje, jak pomocí objektů ADO číst a zapisovat data v sešitech Excelu.

286023 Použití komponenty ActiveX v jazyce Visual Basic pro automatizaci Wordu v Internet Exploreru  

Pokud vaše firma vyžaduje vytváření binárních formátů souborů Office 97, Office 2000, Office XP a Office 2003, nabízí vám dodavatelé třetích stran komponenty, které vám můžou pomoct. Společnost Microsoft neposkytuje žádné takové součásti, takže je třeba vytvořit řešení sami nebo si ho zakoupit od jiného dodavatele. K dispozici je mnoho různých produktů třetích stran. Každé řešení by mělo být prozkoumáno, aby ho co nejlépe odpovídalo vašim potřebám.

Pokud chcete vytvořit vlastní řešení, které upraví formáty binárních souborů Office 97, Office 2000, Office XP a Office 2003 přímo, můžete si tyto specifikace formátu souborů zadarmo získat podle podmínek v části Microsoft Open Specification Promise (OSP). Pro dokumentaci nebo produkty, které vytvoříte, není k dispozici žádná technická podpora, ale dokumentace je k dispozici. 

Řešení na straně serveru mohou také umožňovat uživatelům ukládat soubory a potom nechat server vykreslovat soubory pro prohlížení na webu nebo na jiných médiích. Společnost Microsoft v současné době pracuje s těmito funkcemi a poskytuje úvodní verzi této funkce ve službách Microsoft Excel Services. Excel Services je nová serverová technologie, která je součástí Microsoft Office SharePoint Server 2007 a umožňuje načítání, výpočet a zobrazení sešitů Excelu na Office SharePoint serveru 2007. Další informace o službách Excel Services najdete na následujících webech MSDN (Microsoft Developer Network):

Přehled služeb Excel Services

Návod: vývoj vlastní aplikace pomocí webových služeb aplikace Excel

Vytváření podnikových aplikací pomocí služeb Excel Services a Office Open XML Služba Word Automation Services je nová aplikace služby v SharePoint serveru 2010. Služba Word Automation Services umožňuje převádění dokumentů na straně serveru na formáty podporované klientskými aplikacemi Microsoft Word.

Přehled služby Word Automation Services

Představení služby Word Automation Services Je třeba vyhodnotit, které možnosti Tento článek popisuje, podle vašich potřeb a jak nejlépe nasadit řešení. Informace uvedené v tomto článku nejsou zaručeny pro řešení všech problémů všech klientů. Doporučujeme, abyste před nasazením řešení důkladně vyzkoušeli svoje řešení.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×