Печать IIS7.5 Excel не работает при запуске с сервера

#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, если в этом нет необходимости. у меня это сработало, когда я удалил это.