У меня есть приложение ASP.NET, которое использует MS Word для обработки документов. Таким образом, в основном запрос поступает в IIS в приложение MVC, и приложение берет файл Word DOCX, применяет некоторые изменения к файлу DOCX и создает новый. Вся эта обработка выполняется в контексте пользователя IIS. Так достаточно ли однопользовательской лицензии для Word? Или, поскольку это делается через веб-приложение, в котором одновременно могут одновременно работать несколько пользователей Word, требуется ли для этого больше лицензий?
1 ответ
Выполнение, как вы предлагаете, означает, что вы мультиплексируете функциональность Word для нескольких пользователей. В этом случае вам может понадобиться лицензия для КАЖДОГО ПОЛЬЗОВАТЕЛЯ, который ее использует.
Есть также много проблем безопасности и функциональности, с которыми вы можете столкнуться при выполнении автоматизации Office на стороне сервера; по этой причине Microsoft не поддерживает его использование таким образом, независимо от лицензирования.
Microsoft не рекомендует и не поддерживает серверную автоматизацию Office.
Сделайте, как Скотт предлагает в своем комментарии, и отойдите от Word Automation (yuck;)) и вместо этого измените файл (ы) DOCX напрямую, используя Open XML SDK:
Open XML SDK 2.5 упрощает задачу управления пакетами Open XML и базовыми элементами схемы Open XML внутри пакета. Интерфейс прикладного программирования (XML) Open XML включает в себя множество общих задач, которые разработчики выполняют над пакетами Open XML, поэтому вы можете выполнять сложные операции всего за несколько строк кода.
Кроме того, намного проще, если вы используете библиотеку, такую как PowerTools для Open XML.
PowerTools для Open XML содержит исходный код и руководство для выполнения различных общих задач с использованием Open XML SDK
Это позволит вам вообще не использовать Word на сервере.
Дополнительная информация доступна прямо из источника, Microsoft: соображения по поводу автоматизации Office на стороне сервера