Съображения за автоматизиране на Office от страна на сървъра

Обобщена информация

Разработчиците могат да използват автоматизация в Microsoft Office, за да изградят персонализирани решения, които използват възможностите и функциите, които са вградени в продукта на Office. Въпреки че подобни програмни разработки могат да бъдат внедрени в клиентска система с относителна лекота, могат да възникнат редица усложнения, ако автоматизацията се извършва от код на страната на сървъра, като например Microsoft Active Server Pages (ASP), ASP.NET, DCOM или услуга на Windows NT. Тази статия описва усложненията, които разработчиците могат да изправят. Статията предлага и алтернативи на автоматизацията, които могат да ускорят представянето. Разработчиците трябва да са наясно обаче, че предложенията, които тази статия предоставя са само за информативни цели. Microsoft не препоръчва или не поддържа автоматизация на Office от страна на сървъра.

Забележка

В този контекст системата на базата данни на Access, която се разпространява и достъп до Runtime, се разглеждат като компоненти на Microsoft Office. Терминът "сървърна страна" важи и за кода, който се изпълнява на работна станция на Windows, ако кодът се изпълнява от работна станция на Windows, различна от интерактивна станция на потребителя, който е влязъл. Например кодът, който е стартиран от планировчика на задачи под СИСТЕМНИя акаунт, се изпълнява в същата среда, в която е кодът на ASP или като DCOM код. Следователно много от проблемите, описани в тази статия, може да възникнат. За повече информация относно работните станции на Windows и за COM вижте секцията "повече информация" и секцията "препратки".

Повече информация

Всички текущи версии на Microsoft Office са проектирани, тествани и конфигурирани така, че да се изпълняват като продукти на крайния потребител на клиентска работна станция. Те предполагат Интерактивна работна плот и потребителски профил. Те не предоставят нивото на reentrancy или сигурността, което е необходимо, за да отговори на нуждите на компонентите на сървъра, които са предназначени да се изпълняват неприсъствени. В момента Microsoft не препоръчва и не поддържа автоматизация на приложенията на Microsoft Office от неизползваното, интерактивно клиентско приложение или компонент (включително ASP, ASP.net, DCOM и NT Services), тъй като Office може да проявява нестабилно поведение и/или безизходица при изпълнение на Office в тази среда. Ако изграждате решение, което се изпълнява в контекст на сървъра, трябва да се опитате да използвате компоненти, които са били направени безопасни за ненаблюдавано изпълнение. Или трябва да се опитате да намерите алтернативи, които позволяват поне част от кода да се изпълнява от страна на клиента. Ако използвате приложение на Office от страна на сървъра, приложението ще му липсват много от необходимите възможности за успешно изпълнение. Освен това ще поемате рискове със стабилността на цялостното решение.

Проблеми с използването на автоматизация на Office от страна на сървъра

Разработчиците, които се опитат да използват Office в решение от страна на сървъра, трябва да са наясно с пет главни области, в които Office се държи различно от очакваното поради средата. Ако кодът ви е да изпълнявате успешно, трябва да адресирате тези проблеми и да намалите ефекта му във възможно най-голяма степен. Обмислете внимателно тези проблеми, когато създавате приложението си. Едно решение не може да отговори на всички проблеми. Различните дизайни изискват да приоритизирате елементите по различен начин.

  • Самоличност на потребител: приложенията на Office предполагат самоличността на потребителя, когато се изпълняват приложенията, дори когато автоматизацията стартира приложенията. Приложенията се опитват да инициализират лентите с инструменти, менютата, опциите, принтерите и някои добавки на базата на настройките в кошера на потребителските регистри за потребителя, който стартира приложението. Много услуги се изпълняват под акаунти, които нямат потребителски профили (като например системен акаунт или акаунт за IWAM_ [ServerName]). Следователно Office може да не се инициализира правилно при стартиране. В тази ситуация Office връща грешка във функцията CreateObject или функцията CoCreateInstance . Дори ако приложението на Office може да се стартира, други функции може да не работят правилно, ако не съществува потребителски профил.

  • Интерактивност с настолната версия: приложенията на Office предполагат, че те се изпълняват под Интерактивна работна плот. В някои случаи може да се наложи приложенията да бъдат направени видими за някои функции за автоматизиране, за да работят правилно. Ако възникне неочаквана грешка или ако е нужен неопределен параметър за изпълнение на функция, Office е проектиран да подкани потребителя с модален диалогов прозорец, който изисква потребителят какво иска да прави потребителят. Модален диалогов прозорец на неинтерактивна работна плот не може да бъде пропуснат. Следователно тази нишка престава да отговаря (увисва) за неопределено време. Макар че определени практики за кодиране могат да ви помогнат да намалите вероятността този проблем, тези практики не могат да предотвратят проблема изцяло. Този факт само прави използването на приложенията на Office от среда от страна на сървъра рисковани и неподдържани.

  • Reentrancy и скалируемост: компонентите на сървъра трябва да бъдат силно превключени, многонишкови com компоненти, които имат минимум режийни и висока пропускателна способност за множество клиенти. Приложенията на Office са в почти всички отношения точно обратното. Приложенията на Office не са повторно участници, базирани на база сървъри за автоматизиране, които са предназначени да предоставят разнообразни, но с използване на ресурсите функции за един клиент. Приложенията предлагат малко скалируемост като решение от страна на сървъра. Освен това приложенията имат фиксирани ограничения за важни елементи, като например памет. Те не могат да се променят чрез конфигурацията. По-важно е приложенията да използват глобални ресурси, като например нанесени файлове с памет, глобални добавки или шаблони, както и споделени сървъри за автоматизация. Това може да ограничи броя на екземплярите, които могат да се изпълняват едновременно и могат да доведат до условия за надбягвания, ако приложенията са конфигурирани в среда за множество клиенти. Разработчиците, които планират да изпълняват повече от един екземпляр на произволно приложение на Office, трябва да обмислят "Обединяване" или сериализиране на достъп до приложението на Office, за да се избегнат потенциални безизходица или повреда на данните.

  • Гъвкавост и стабилност: Office 2000, Office XP, Office 2003 и Office 2007 Използвайте технология на Microsoft Windows Installer (MSI), за да улесните инсталирането и самостоятелното отстраняване на крайния потребител. MSI въвежда концепцията за "инсталиране при първо ползване". Това позволява функции за динамично инсталиране или конфигуриране по време на изпълнение за системата или по-често за определен потребител. В среда от страна на сървъра това и двете забавят производителността и увеличават вероятността да се покаже диалогов прозорец, който изисква потребителят да одобри инсталацията или да предостави инсталационен диск. Въпреки че тази функция е предназначена за увеличаване на издръжливостта на Office като краен потребител, изпълнението на MSI възможностите на Office се окаже непродуктивно в средата на сървъра. Освен това стабилността на Office като цяло не може да бъде гарантирана, когато Office се изпълнява от страна на сървъра, тъй като не е проектиран или изпитан за този тип употреба. Използването на Office като компонент на услуга в мрежов сървър може да намали стабилността на този компютър и следователно може да намали стабилността на цялата мрежа.

  • Защита от страна на сървъра: приложенията на Office не са били предназначени за използване от страна на сървъра. Ето защо приложенията на Office не вземат под внимание проблемите, свързани със защитата, с които разпределените компоненти са изправени. Office не удостоверява входящи искания. Office също не ви предпазва от неволно изпълняване на макроси или от започване на друг сървър, който може да изпълнява макроси, от вашия код на сървър. Не отваряйте файлове, които са качени в сървъра от Анонимен уеб сайт. Въз основа на настройките за защита, които са били последно настроени, сървърът може да изпълнява макроси под администратор или системен контекст с пълни привилегии и следователно може да компрометира вашата мрежа. Освен това Office използва много компоненти от страната на клиента (като например прости MAPI, WinInet и MSDAIPP), които могат да кешират информацията за удостоверяване на клиента за обработка на скоростта. Ако Office е автоматизиран сървър, един екземпляр може да обслужва повече от един клиент. Ако информацията за удостоверяване е кеширана за тази сесия, един клиент може да използва кешираните идентификационни данни на друг клиент. Следователно клиентът може да получи непредоставени разрешения на Access, като се представя за други потребители.

Освен технически проблеми трябва да имате предвид и проблеми с лицензирането. Настоящите указания за лицензиране пречат на приложенията на Office да се използват на сървър за клиентски искания за обслужване, освен ако тези клиенти имат лицензирани копия на Office. Използването на автоматизация от страна на сървъра за предоставяне на функционалност на Office на нелицензирани работни станции не е обхванато от лицензионното споразумение с краен потребител (ЛСКП). Освен тези проблеми е възможно да възникне една от следните често срещани грешки при опит за автоматизиране на сървъра на Office:

  • Функцията CreateObject и функцията CoCreateInstance връщат една от следните съобщения за грешка при изпълнение и не могат да бъдат стартирани за автоматизация.

    Съобщение 1

    Грешка на оперативно време "429": ActiveX Компонентът не може да създаде обект

    Съобщение 2

    Грешка на оперативно време "70": отказано е разрешение

    Съобщение 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): Неуспешно изпълнение на сървъра

    Съобщение 4

    E_ACCESSDENIED (0x80070005): отказан достъп

  • Когато отворите документ на Office, получавате едно от следните съобщения за грешка:

    Съобщение 1

    Грешка на оперативно време "5981" (0x800A175D): не може да се отвори мястото за съхранение на макроси

    Съобщение 2

    Грешка на оперативно време "1004": методът "~" на обект "~" е неуспешно

  • Функцията CreateObject и функцията CoCreateInstance спират да отговарят и никога не свършват или отнемат много време, за да се върнат. На някои сървъри създаването е бързо, но грешки в 1004 се показват в регистъра на събитията на Windows, в който е посочено, че приложението е спряно.

  • Някои функции не се показват неочаквано или спират да отговарят за неопределено време, защото потребителят е информиран или друг диалогов прозорец, който изисква потребителско внимание.

  • Изпълнението на множество заявки или тестване на стреса кара този код да се провали, да спре да отговаря или да се срине при създаването или прекратяването на приложение на Office. Когато това се случи, процесът се изпълнява в паметта и не може да бъде прекратен или всички екземпляри на приложението, които са автоматизирани неуспешно от този момент нататък.

Други проблеми или съобщения може да се появят в допълнение към тези, които са изброени тук, но тези проблеми обикновено възникват като резултат от петте основни проблема, които са изброени по-горе в тази статия. 

Алтернативи на автоматизацията от страна на сървъра

Microsoft настоятелно препоръчва разработчиците да намират алтернативи на автоматизацията на Office, ако те трябва да разработват решения от страна на сървъра. Поради ограниченията за модела на Office, промените в конфигурацията на Office не са достатъчни за разрешаване на всички проблеми. Microsoft настоятелно препоръчва редица алтернативи, които не изискват Office да се инсталира на сървъра, и които могат да изпълняват най-често срещаните задачи по-ефективно и по-бързо от автоматизацията. Преди да включите Office като компонент от страна на сървъра във вашия проект, обмислете алтернативите. Повечето задачи за автоматизиране от страна на сървъра включват създаването или редактирането на документи. Office 2007 поддържа новите файлови формати Open XML, които позволяват на разработчиците да създават, редактират, четат и трансформират съдържанието на файла на страната на сървъра. Тези файлови формати използват пространството за имена System.io.Package.io в рамката Microsoft .NET 3. x, за да редактират файлове на Office, без да използват клиентските приложения на Office. Това е препоръчваният и поддържан метод за обработка на промените във файлове на Office от услуга. Файловите формати Open XML са публичен стандарт. 

Microsoft предоставя SDK за манипулиране на файловите формати Open XML от рамката на .NET 3. x. За повече информация за SDK и за това как да използвате SDK, за да създадете или редактирате файлове на Open XML, посетете следните уеб сайтове на Microsoft Developer Network (MSDN):

Отваряне на XML SDK документация

Как да: манипулиране на документи на формат на Office Open XML

Манипулиране на файлове на Word 2007 чрез модела за обекти на Open XML (част 1 от 3)

Манипулиране на файлове на Word 2007 чрез модела на обекти на Open XML (част 2 от 3)

Манипулиране на файлове на Word 2007 чрез модела на обекти на Open XML (част 3 от 3)

Манипулиране на файлове на Excel 2007 и PowerPoint 2007 с обектния модел Open XML (част 1 от 2)

Манипулиране на файлове на Excel 2007 и PowerPoint 2007 с обектния модел Open XML (част 2 от 2)

Създаване на решения за генериране на документи от страна на сървъра с помощта на модела на обекти на Open XML (част 1 от 2)

Създаване на решения за генериране на документи от страна на сървъра с помощта на модела на обекти на Open XML (част 2 от 2)

Когато подавате поточно файловете за отваряне на XML от ASP или от ASP.NET, трябва да посочите правилния тип многофункционално разширение на интернет поща (MIME) за съдържанието, което предавате. За изброяване на типовете MIME за файлове на Office 2007 посетете следния уеб сайт:

Файловият формат на Office 2007 MIME типове за поточно предаване на HTTP съдържание

Ако сте насочени към предварително Office само за клиенти на 2007 и не искате да изисквате използването на Open XML в решението, можете да използвате други недвоични файлови формати на Office, като например HTML, XML и RTF. След това можете да прехвърлите тези файлове към клиент, като използвате MIME тип, така че полученият текст да се показва в Office. Документът може да бъде редактиран, записан и дори върнат на сървъра с помощта на ASP на сървъра. За повече информация за някоя от тези теми и за примери, които показват как да ги реализирате, щракнете върху следните номера на статии, за да видите статията в базата знания на Microsoft:

198703 Как да автоматизирате Excel от страна на клиента VBScript

278973 ExcelADO показва как да използвате ADO за четене и запис на данни в работни книги на Excel

286023 Как да използвате ActiveX компонент на VB за Word Automation от Internet Explorer  

Ако вашата фирма изисква създаването на сървърната част на Office 97, Office 2000, Office XP и Office 2003 двоични файлови формати, доставчици на трети страни предлагат компоненти, които могат да ви помогнат. Microsoft не предоставя такива компоненти, така че ще трябва сами да създадете свое решение или да закупите такъв от доставчик на трета страна. Налични са много различни продукти на други разработчици. Би трябвало да изследвате всяко решение, за да отговаряте най-добре на доставчика за нуждите на вашата фирма.

Ако искате да създадете свое собствено решение, което редактира Office 97, Office 2000, Office XP и двоични файлови формати за Office 2003 директно, можете да получите спецификациите за файлов формат безплатно при условията на обещанието на Microsoft Open спецификацията. Не се предлага техническа поддръжка за документацията или за продуктите, които създавате, но документацията е налична. 

Решенията от страна на сървъра също може да искат да позволят на потребителите да качват файлове и след това да накарат сървъра да рендира файловете за гледане в уеб или на други носители. Microsoft в момента работи, за да предлага такива функции, и предоставя ранна версия на тази възможност в Microsoft Excel Services. Excel Services е нова технология на сървъра, която е включена в Microsoft Office SharePoint Server 2007 и която ви позволява да зареждате, изчислявате и показвате работни книги на Excel в Office SharePoint Server 2007. За повече информация за Excel Services посетете следните уеб сайтове на Microsoft Developer Network (MSDN):

Общ преглед на Excel Services

Репетиция: разработване на приложение по избор с помощта на Excel Web Services

Създаване на бизнес приложения с помощта на Excel Services и форматите на Office Open XML Услугите за автоматизация на Word са ново сервизно приложение в SharePoint Server 2010. Услугите за автоматизация на Word предоставят ненаблюдавано преобразуване на документи от страна на сървъра във формати, които се поддържат от клиентското приложение на Microsoft Word.

Общ преглед на услугите за автоматизация на Word

Въведение в услугите за автоматизация на Word Трябва да оцените кои от опциите, описани в тази статия, отговарят на нуждите ви, и как най-добре да разположите решението си. Информацията, която тази статия предоставя, не е гарантирана за разрешаване на всички проблеми за всички клиенти. Насърчаваме ви да тествате старателно решението си, преди да разположите решението.

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×