Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Загальні відомості

Розробники можуть використовувати автоматизацію в Microsoft Office для створення користувацьких рішень, які використовують можливості та функції, вбудовані в продукт Office. Хоча така програмна розробка може бути реалізована в клієнтській системі з відносною легкістю, може виникати кількість ускладнень, якщо Автоматизація має місце на сервері з кодами сервера, як-от Microsoft Active Server (ASP), ASP.NET, DCOM або служби Windows NT. У цій статті розглядаються ускладнення, які можуть виникнути розробники. У статті також пропонуються альтернативи для автоматизації, які можуть прискорити швидкодію. Однак розробники повинні знати, що пропозиції, які надає ця стаття, призначено лише в інформаційних цілях. Корпорація Майкрософт не рекомендує та не підтримує автоматизацію на стороні сервера Office.

Примітка

У цьому контексті програма Microsoft Office не відповідно використовується для розповсюдження обробника баз даних Access і виконання Access. Термін "серверна частина" також застосовується до коду, який працює на робочій станції Windows, якщо код працює з робочої станції Windows, відмінного від інтерактивної станції користувача, який увійшов у систему. Наприклад, код, який запускається планувальником завдань у СИСТЕМНОМУ обліковому записі, виконується в тому ж середовищі, що й код ASP на сервері, або код DCOM. Таким чином, може виникнути багато питань, які описані в цій статті. Щоб отримати докладніші відомості про робочі станції Windows і COM, ознайомтеся з розділом "Додаткові відомості" та розділом "посилання".

Додаткові відомості

Усі поточні версії Microsoft Office розроблено, перевірено та настроєно для запуску як продуктів для кінцевого користувача на клієнтській робочій станції. Вони припускають інтерактивні настільні та профілі користувачів. Вони не передбачають рівень reentency або безпеки, необхідних для задоволення потреб серверних компонентів, призначених для автоматичної роботи. Корпорація Майкрософт зараз не рекомендує, а не підтримує автоматизацію програм Microsoft Office із будь-якого неінтерактивної програми клієнта або компонента (зокрема, ASP, ASP.NET, DCOM і NT), оскільки Office може демонструвати нестабільну поведінку та/або глухий кут, коли Office запущено в цьому середовищі. Якщо ви створюєте рішення, яке виконується в контексті сервера, ви повинні спробувати використовувати компоненти, які були безпечними для автоматичної виконання. Або ви маєте спробувати знайти альтернативні варіанти, які дозволять принаймні частину коду, щоб запустити клієнтську сторону. Якщо ви використовуєте програму Office із серверного рішення, у програмі буде бракує ресурсів, необхідних для успішного виконання. Крім того, ви будете приймати ризики, використовуючи стабільність вашого загального рішення.

Проблеми з використанням автоматизації Office на боці сервера

Розробники, які намагатимуться використовувати Office на серверному рішенні, повинні знати п'ять основних областей, у яких Office працює інакше, ніж очікувалося через навколишнє середовище. Якщо ваш код має успішно виконуватися, необхідно вирішити ці проблеми та звести до мінімуму їх вплив максимально ефективно. Уважно розгляньте ці проблеми, коли ви будуєте програму. Одне рішення не може вирішити всі проблеми. Для різних макетів потрібно визначати пріоритетність елементів по-різному.

  • Ідентифікація користувача: програми Office передбачають особу користувача під час запуску програм, навіть якщо програма автоматизації запускає програми. У програмах програма спробує ініціалізувати панелі інструментів, меню, параметри, принтери та деякі надбудови на основі параметрів у Кущ реєстру для користувача, який запускає застосунок. Багато служб виконуються в розділі облікові записи, які не мають профілів користувачів (наприклад, СИСТЕМНИЙ обліковий запис або IWAM_ [ім'я _ сервера] облікові записи). Таким чином, Office може не ініціалізувати належним чином під час запуску. У цій ситуації служба Office повертає помилку у функції CreateObject або функції Cotreateекземпляра . Навіть якщо програма Office може бути запущена, інші функції можуть працювати неналежним чином, якщо профіль користувача не існує.

  • Інтерактивність з робочим столом: програми Office передбачають, що вони запускаються під інтерактивним робочим столом. У деяких випадках програми, можливо, потрібно буде зробити видимими для певних функцій автоматизації для правильної роботи. Якщо виникає неочікувана помилка, або якщо для виконання функції знадобиться непотрібний параметр, Office призначено для запиту користувача за допомогою модального діалогового вікна, яке запитує користувача, який користувач хоче зробити. Модальне діалогове вікно в неінтерактивному робочому столі не можна звільняти. Тому ця різьба не відповідає (зависає) на невизначений термін. Хоча певні методи кодування можуть допомогти зменшити вірогідність цієї проблеми, ці дії не можуть повністю запобігти виникненню цієї проблеми. Цей факт дає змогу запускати програми Office із серверного середовища, які не підтримуються.

  • Прозорість і масштабованість: компоненти сервера мають бути вельми перевступними, БАГАТОПОТОКОВЕ 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 використовується багато клієнтських компонентів (наприклад, проста MAPI, WinInet і MSDAIPP), які можуть кешувати дані автентифікації клієнта, щоб прискорити обробку швидкості. Якщо Office автоматизовано на стороні сервера, один примірник може обслуговувати більше одного клієнта. Якщо дані автентифікації збережено в кеші для цього сеансу, один клієнт може використовувати кешовані облікові дані іншого клієнта. Таким чином, клієнт може отримати ненаданий дозвіл на доступ іншим користувачам.

Крім технічних проблем, ви також повинні враховувати питання ліцензування. Поточні правила ліцензування перешкоджають використанню програм Office на сервері для клієнтських запитів, якщо тільки ці клієнти не мають ліцензованих копій Office. Використання автоматизації на стороні сервера для забезпечення функціональних можливостей Office для неліцензійних робочих станцій не поширюється на Ліцензійну угоду користувача (Ліцензійна угода). Крім цих проблем, може виникнути одна з таких поширених помилок, які можуть виникати під час спроби автоматизувати Серверні програми Office:

  • Функція CreateObject і функція Cotreateекземпляр повертають один із наведених нижче повідомлень про помилки під час виконання та не можна запустити для автоматизації.

    Повідомлення 1

    Помилка під час запуску "429": компонент ActiveX не може створити об'єкт

    Повідомлення 2

    Помилка під час запуску "70": відмовлено в дозволі

    Повідомлення 3

    CO_E_SERVER_EXEC_FAILURE (0x8008000x5): помилка виконання сервера

    Повідомлення 4

    E_ACCESSDENIED (0x80070005): відмовлено в доступі

  • Під час відкриття документа Office з'являється одне з наведених нижче повідомлень про помилку.

    Повідомлення 1

    Помилка під час запуску "5981" (0x800A175D): не вдалося відкрити сховище макросів

    Повідомлення 2

    Помилка під час запуску "1004": метод "~" об'єкта "~" не виконано

  • Функція CreateObject , а функція Cotreateекземпляра не відповідає та не завершить роботу або займає багато часу, щоб повернутися. На деяких серверах створення відбувається швидко, але помилки 1004 відображаються в журналі подій Windows, що вказує на те, що програма припинила роботу.

  • Деякі функції несподівано зазнають невдачі або не відповідають на невизначений час через оповіщення користувача або іншого діалогового вікна, що вимагає уваги користувача.

  • Запуск кількох запитів або стрес-тестування спричиняє збій у коді, припинення відповіді або аварійне створення або припинення роботи програми Office. Коли це станеться, процес, що виконується, працює в пам'яті, і його не можна припинити, або всі екземпляри програми, які не буде автоматизовано з цієї точки.

Інші проблеми або повідомлення можуть з'явитися на додачу до перелічених тут, але ці проблеми зазвичай трапляються в результаті п'яти основних проблем, перелічених раніше у цій статті. 

Альтернативи для автоматизації на стороні сервера

Корпорація Майкрософт настійно рекомендує розробникам знаходити альтернативи для автоматизації Office, якщо їм потрібно розробляти серверні рішення. Оскільки обмеження на проектування Office, зміни до конфігурації Office недостатньо, щоб вирішити всі проблеми. Корпорація Майкрософт настійно рекомендує кілька альтернатив, які не потребують інсталяції Office на стороні сервера, і які можуть ефективніше виконувати найпоширеніші завдання та швидше, ніж Автоматизація. Перш ніж включати Office як компонент на стороні сервера в проекті, розгляньте альтернативні варіанти. Більшість завдань автоматизації на сервері передбачають створення або редагування документів. Office 2007 підтримує нові формати файлів Open XML, які дають змогу розробникам створювати, редагувати, читати та перетворювати вміст файлу на стороні сервера. Ці формати файлів використовують простір імен System.io.Package.io у структурі Microsoft .net 3. x, щоб редагувати файли Office, не використовуючи програми для клієнтів Office. Це рекомендований і підтримуваний спосіб обробки змін у файлах Office із служби. Формати файлів Open XML – це загальнодоступний стандарт. 

Корпорація Майкрософт надає пакет 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, перейдіть на такий веб-сайт:

Типи MIME-файлів Office 2007 для потокового передавання вмісту у форматі HTTP

Якщо ви орієнтуєтеся тільки клієнтам Office 2007, і ви не хочете вимагати використання Open XML у рішенні, можна використовувати інші недвійкові формати файлів Office, як-от HTML, XML і RTF. Потім ви можете передавати ці файли клієнту за допомогою типу MIME, щоб отриманий текст з'явився в системі Office. Документ можна редагувати, зберігати та навіть повертатися на сервері, використовуючи ASP на сервері. Щоб отримати докладні відомості про будь-яку з цих тем, а також приклади, які показують, як їх реалізувати, клацніть перелічені нижче номери статей, щоб переглянути статті в базі знань Microsoft Knowledge Base:

198703 Як автоматизувати програму Excel на стороні клієнта VBScript

278973 ExcelADO демонструє використання ADO для читання та записування даних у книгах Excel

286023 Використання компонента VB ActiveX для автоматизації Word із браузера Internet Explorer  

Якщо ваша компанія вимагає створення на стороні сервера пакета Office 97, Office 2000, Office XP і бінарних файлів Office 2003, постачальники сторонніх постачальників пропонують компоненти, які можуть допомогти вам. Корпорація Майкрософт не надає жодних таких компонентів, тому знадобиться створити рішення самостійно або придбати один із сторонніх постачальників. Доступні багато різних продуктів сторонніх постачальників. Потрібно дослідити кожне рішення, щоб найкращим чином відповідати постачальника бізнес-потреб.

Якщо ви хочете створити власне рішення, яке редагує файли Office 97, Office 2000, Office XP і Office 2003 безпосередньо в двійкових форматах, ви можете отримати відповідні специфікації формату в розділі умови, як-от обіцянка Microsoft Open специфікація (OSP). Служба технічної підтримки недоступна для документації або для створюваних продуктів, але документація доступна. 

Рішення на стороні сервера також можуть дозволити користувачам передавати файли, а потім на сервері відтворювати файли для перегляду в Інтернеті або в інших середовищах. Корпорація Майкрософт зараз працює над пропозицією запропонувати такі функції, а також надає ранню версію цієї можливості в службах 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. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×