#vba #pdf-generation #iis-7.5 #office-interop
#vba #генерация pdf #iis-7.5 #office-взаимодействие
Вопрос:
У меня возникли проблемы с созданием PDF-файла с помощью PDFCreator из макроса Excel (с использованием VB.NET 3.5 и взаимодействие). При входе в систему Windows в качестве пользователя домена я могу запустить макрос непосредственно из Excel, и все работает нормально (файл PDF печатается и сохраняется), но при публикации и запуске от имени того же пользователя с сервера принтер не найден.
В макросе я знаю, что это можно решить, установив приложение.ActivePrinter (в моем случае «PDFCreator на Ne00:»), который снова работает при запуске непосредственно из Excel, но не с сервера. Итак, что мне интересно, так это как сделать возможным установку ActivePrinter при запуске на сервере?
Это работало с предыдущей версией IIS на сервере (6.0). Я попытался предоставить права доступа пользователя домена (например, в DCOMCNFG), PDFCreator настроен правильно и доступен, на самом деле не знаю, как подойти к этому.
Ответ №1:
Использование взаимодействия Office из серверных сценариев (IIS / ASP.NET / Windows Service …) НЕ поддерживается MS — см.http://support.microsoft.com/default.aspx?scid=kb ;RU-US;q257757#kb2
Другой момент заключается в том, что с Windows Vista было несколько изменений, связанных с безопасностью, которые не позволяют выполнять какие-либо «настольные» действия (например, печать …) из службы Windows…
Альтернатива взаимодействию:
Для создания PDF из файла Excel существует несколько библиотек, которые не используют Excel и отлично работают в серверных сценариях, таких как Flexcel, Aspose.Ячейки, электронная таблица…
Комментарии:
1. Спасибо за ваш ответ, Яхия! Я буду искать альтернативное решение.
2. добро пожаловать — пожалуйста, не забудьте проголосовать / отметить как принятый любой ответ, который может помочь
Ответ №2:
Это работает даже в IIS8 также. Предоставьте приложению Microsoft Excel достаточное разрешение от DcomConfig (например, IIS_IUSRS, сетевые службы и т.д.)
позаботьтесь о олицетворении идентификатора пользователя и пароля, указанных в Web.xml . не устанавливайте значение true, если в этом нет необходимости. у меня это сработало, когда я удалил это.