У меня есть строка кода, которую я могу запустить локально как часть службы, которая прекрасно работает.
sReportPath = objCrystalUtils.ExportReportToPDF("Report Name", iReportInfoID)
Этот код запускается как часть службы, и когда я выполняю его модульное тестированиепередавая данные, он в конечном итоге создает отчет и печатает его.
Когда я запускаю точно такой же фрагмент кода в .ashx из вызова ajax.Отчеты генерируются (я вижу, что файлы pdf создаются на диске), но печать не происходит.
oRpt.PrintToPrinter(objReport.DefaultAutoPrint, True, 0, 0)
В обоих случаях один и тот же код используется для печати отчета.(objReport.DefaultAutoPrint = 0 в обоих случаях)
Моя единственная мысль заключается в том, что местоположение кода, вызывающего этот метод, находится в другом месте относительно местоположения самих счетов.
Принтер, на котором я пытаюсь распечатать, является сетевым принтером, установленным на моей машине, и я использую Windows 7 IIS 6.1
Есть мысли?
Редактировать:
Вот мысль ... если я запускаю один как модульный тест локально, а другой запускаю через веб-приложение, работающее через IIS, есть ли разница в идентификаторе пользователя и доступе пользователя к принтеру по умолчанию?
Редактировать:
Поэтому я добавил своих локальных пользователей ASP, IUSR и SYSTEM в систему безопасности принтера и разрешил им печатать ... без кубиков.Итак, я проверил КАЖДОГО пользователя, и он настроен на доступ, и НИКАКИМ пользователям не отказано ... поэтому я думаю, что это своего рода аргументация убивает.
Редактировать:
Я изменил имяэтот пост, так как я больше не думаю, что проблема связана с ajax, поскольку, если я попытаюсь сделать тот же процесс в коде за постом назад, вместо того, чтобы запускать его из вызова ajax, я все равно получу ту же проблему.