Word Automation, запущенная с VS 2008, не работает - PullRequest
1 голос
/ 18 октября 2010

Я развернул свое веб-приложение (ASP.NET/C#) на сервере (Win 2003), чтобы можно было объединять текстовые документы и открывать их.

Все работало нормально: файл .doc былдобавлен в конец другого документа .doc (с использованием библиотек Microsoft.Office.Interop.Word), а затем открыт с помощью клиента MS Word.

К сожалению, в выходные дни на сервере было выполнено автоматическое обновление другим пользователем.команда и я пока не знаем, какое обновление было сделано (возможно, обновление Office 2003, но это может быть даже исправление сервера).

В любом случае после этого я получаю следующее предупреждение в окне просмотра событий иприложение зависает при использовании библиотек Microsoft.Office.Interop.Word:

Обнаружение продукта '{90110409-6000-11D3-8CFE-0150048383C9}', функция 'OfficeUserData', компонент '{4A31E933-6F67-11D2-AAA2-00A0C90F57B0} 'не удалось.
Ресурс' HKEY_CURRENT_USER \ Software \ ODBC \ ODBC.INI \ MS Access Database \ 'не существует.

Мы даже не используем MS Access, а вместо этого SQL Server.Чего я боюсь, так это того, что ключи реестра были изменены, и теперь система больше не работает должным образом.

Я назначил пользователя «NETWORK SERVICE» с правами доступа к слову «запуск / запуск», и этот пользователь тожедля пула приложений по умолчанию.Мы используем IIS6, Windows Server 2003 e Word 2003.

Не могли бы вы предложить какой-либо подход к решению?(даже если я знаю, что, не зная, какое обновление было сделано, это может быть трудно).

Спасибо

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Следует избегать использования компонентов и компонентов Office (beit Office или PIA) на сервере любой ценой:

В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию Microsoft Office.приложения из любого автоматического неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую блокировку при запуске Office в этой среде.

Статья Microsoft KB

Как и многие другие, я регулярно сталкиваюсь с этой проблемой, и нет простого решения.Либо выделите небольшой сервер где-нибудь для выполнения своих задач в Office (и будьте готовы регулярно его перезагружать), либо используйте сторонний продукт, который не ссылается на PIA.

Извините, что принес плохие новости...

0 голосов
/ 18 октября 2010

Вы должны иметь возможность проверить обновления Windows, чтобы увидеть, какие обновления были недавно применены.Надеюсь, вы сможете откатить их назад, пока не найдете виновника.

Пол прав.Развертывание решения с использованием приложений MSOffice на сервере может быть очень рискованным.Будьте готовы и используйте сторожевые таймеры и код для перечисления и уничтожения ошибочных процессов WINWORD.EXE, когда вы думаете, что они могли упасть из глубины.это не элегантный материал, но его можно заставить работать.

Что касается инструментов сторонних разработчиков, я посмотрел их ОЧЕНЬ много.Если вы создаете документ с нуля, большинство из них в порядке, хотя они имеют различные уровни реализованной функциональности.Если вы можете работать только с файлами DOCX, OpenDoc XML SDK работает довольно хорошо и является бесплатным.Но это отстойно фактически манипулировать существующими документами.

Если вы планируете использовать существующие документы в качестве шаблонов, ваши возможности становятся намного более узкими.Вы можете сделать это с помощью OpenXML SDK, но это ОЧЕНЬ сложно.Наветренные отчеты работают, но могут быть $$$.

Большинство продаваемых библиотек "Word Compatible" не поддерживают всех функций, которые вам могут понадобиться.

Вы будетеСкорее всего, вы обнаружите, что использование API объектной модели Word - единственный путь, который даст вам необходимые возможности.Но, как всегда, YMMV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...