Казалось бы, нет принтера по умолчанию для DLL, вызываемой пользователем службы WCF на IIS 7 и Windows Server 2008 - PullRequest
0 голосов
/ 29 августа 2011

У меня есть служба WCF, которая упаковывает некоторые устаревшие библиотеки DLL, которые генерируют отчетные PDF-файлы.Этот устаревший код прекрасно работает в настольном приложении, но при вызове через службу WCF размер страницы PDF определяется размером виртуального экрана (соотношение размера страницы составляет 4: 3), а не фактическим размером бумаги.

Я экспортировал различные разделы реестра для принтеров в моем HKEY_CURRENT_USER и повторно импортировал их в HKEY_USERS.DEFAULT, и я убедился, что локальный принтер доступен для «Все».Тем не менее PDF-файлы получаются неправильными.

Сайт работает в IIS 7 на Windows Server 2008. На сайте есть собственный 32-но AppPool, который работает как специально созданный пользователь.На сайте отключена анонимная аутентификация и отключена олицетворение ASP.NET.

Как ни странно, если я заставлю AppPool работать как я, PDF-файлы отчета имеют правильный размер страницы 8,5 x 11.Но как только я делаю его специально созданным, размер страницы составляет 10,67 x 8,00 дюйма (соотношение 4: 3, например 1024x768).

Чего мне не хватает?

1 Ответ

0 голосов
/ 28 сентября 2011

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

...