Автоматизация Word на сервере - PullRequest
2 голосов
/ 09 апреля 2009

У нас есть требование, чтобы наше веб-приложение выполняло слияние по почте и создать несколько документов Word. Конечно, это очень легко сделать с помощью Автоматизация Word, но не рекомендуется Microsoft http://support.microsoft.com/kb/257757.

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

Что люди обычно делают в этой ситуации? Просто прими это Слово будет иногда зависать или переходить на стороннее решение.

Ответы [ 2 ]

4 голосов
/ 09 апреля 2009

В основном у вас есть три варианта:

  1. Запустите его на сервере и примите эти последствия. По своему опыту я знаю, что все идет не так, но в зависимости от того, насколько в реальном времени и высокоприоритетными являются задачи, которые вы выполняете, это может быть чем-то, с чем вы можете жить. По сути, если вам нужно сделать это, постарайтесь сделать как можно меньше интеграции с Word; если это просто слияние по почте, то вы, вероятно, без проблем уйдете в 99,9% случаев.
  2. Используйте стороннее решение. Но по опыту, за исключением очень простых документов, они никогда не выполняют свою работу совершенно правильно. Например, если вы говорите о чем-то, что будет генерировать PDF-файлы из документов Word на сервере, это никогда не будет выглядеть так же, как в Word.
  3. Вместо прямого вызова Word используйте библиотеки .NET Open XML , чтобы самостоятельно манипулировать документами. Я даже написал материал на VB6, который манипулирует документами Word / Excel 2007, поскольку все они в очень хорошо документированных форматах XML. У вас есть для использования форматов 2007 года, но это быстро и хорошо. Но что-то вроде почтового слияния вам придется делать вручную, так что оно может не подойти. Это решение обычно лучше для манипулирования документами, чем для замены функций Word API.

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

Короче говоря, люди делают все в зависимости от стоимости (времени и т. Д.) И надежности: я бы предложил вариант 1 или 2 для быстрого (но менее надежного) решения или 3 для более надежного (но дорогостоящего) решения .

1 голос
/ 09 апреля 2009

Я создал приложение Powerpoint, используя автоматизацию. По сути, это был веб-сайт библиотеки слайдов, который открывал несколько файлов и перемещал слайды в шаблон.

Первой проблемой, с которой я столкнулся, была безопасность, в итоге я настроил приложение на запуск от имени администратора, что не рекомендуется, и большинство мест, вероятно, будут недовольны этим действием. Вам потребуется гибкость для настройки параметров безопасности.

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

Суть в том, что вы можете заставить автоматизацию работать, но она хакерская. Если у вас есть гибкость и автоматизация - ваш лучший выбор, тогда сделайте это. В противном случае у меня есть две мысли.

  1. Изучите использование Open XML и Open XML SDK
  2. Посмотрите, как запустить службу WCF для доверенной учетной записи пользователя. затем вызовите вашу веб-страницу или поставьте в очередь задание на обработку запроса.
...