ASP.NET MVC - невозможно распечатать элемент управления ASP.NET Charting на сервере - PullRequest
0 голосов
/ 10 февраля 2010

Попытка распечатать элемент управления ASP.NET Charting за кулисами в моем веб-приложении. Я думаю, что это проблема с разрешениями принтера, так как все в порядке до того момента, когда мой код вызывает:

chart.Printing.Print(false);
bool finished = false;
while (!finished)
{
    finished = File.Exists(settings.GetValue("statusfile")); // file which indicates document was printed
    System.Threading.Thread.Sleep(1000);
}

В этот момент страница просто замирает (или продолжает бесконечно загружаться - бесконечный цикл!) Понятно, что это происходит, потому что я на 100% полагаюсь на печатный документ. Я намерен добавить тайм-аут, однако в данный момент я просто пытаюсь выяснить, почему именно документ никогда не устанавливается на принтер!

Я дал учетной записи (под которой работает AppPool) разрешения для всех соответствующих папок и даже самого принтера PDF ... Все еще ничего.

Я что-то упустил? Есть ли проблемы с печатью на стороне сервера через ASP.NET? В прошлом я сталкивался с некоторыми проблемами при использовании WindowsServices, но не уверен, что это аналогичная проблема с веб-сайтами ASP.NET.

Обновление

Как и предполагалось, я обновил AppPool, чтобы дать себе (администратору) разрешения, и это та же проблема. Таким образом, судя по всему, работа никогда не отправляется на принтер. Кажется, я не могу понять, почему ...

Вероятно, следовало упомянуть об этом в моем первоначальном посте .... но я вызываю принтер через библиотеку DLL, на которую ссылаются, этот код не вызывается напрямую из моего приложения (если это имеет значение). Кроме того, это нормально работает на моей машине разработки, которая работает под управлением Windows 7 IIS7.0, где на сервере работает сервер Windows 2003 с IIS6.0.

Обновление 2

Я удалил цикл while и просто оставил в строке chart.Printing.Print(false) и получается, что документ IS отправляется на принтер. Поэтому проблема должна быть в том, что файл настроек не записывается, поэтому цикл никогда не прерывается!

1 Ответ

0 голосов
/ 10 февраля 2010

Чтобы изолировать, если это действительно проблема с разрешениями, вы можете попробовать запустить приложение с помощью сервера веб-разработки Visual Studio, который будет работать под вашими учетными данными. Или, если это не вариант, временно измените пул приложений IIS, чтобы он использовал ваши учетные данные. Если что-то все еще не работает, у вас может быть другая проблема. Я не уверен, какую библиотеку диаграмм вы используете (это новая Microsoft?), Но, возможно, Print хочет показать диалоговое окно принтера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...