Печать из IIS не работает на общем принтере, который подключен как локальный asp.net - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь распечатать, используя asp.net со следующим кодом

string s = "string to print";
PrintDocument p = new PrintDocument();
p.PrintPage += delegate(object sender1, PrintPageEventArgs e1)
{
  e1.Graphics.DrawString(s, new Font("Times New Roman", 12), new 
  SolidBrush(Color.Black), new RectangleF(0, 0, 
  p.DefaultPageSettings.PrintableArea.Width, 
  p.DefaultPageSettings.PrintableArea.Height));
};
try
{
   p.Print();
}
catch (Exception ex)
{
   throw new Exception("Exception Occured While Printing", ex);
}

Этот код выполняется успешно, но ничего не печатается, состояние на принтере всегда "ошибка печати".Но он работает на моем IP-принтере.

Я назначил учетную запись администратора для пула приложений.

Моя среда - Server2008, IIS 7, .Net 4.0

1 Ответ

0 голосов
/ 28 декабря 2018

Чтобы использовать принтер, к которому предоставлен общий доступ с удаленного компьютера, ваше приложение должно запускаться с использованием учетной записи, которая имеет разрешение на подключение к удаленному компьютеру.Удаленному компьютеру совершенно безразлично, сколько у вас разрешений на локальной рабочей станции, на которой размещен веб-сервер;это совершенно другой домен безопасности *, и поэтому права администратора на локальной станции совсем не помогают.

Чтобы это работало, вам нужно настроить учетную запись обычного пользователя, которая может подключаться к удаленному общему ресурсу.Часто это также означает изменение общего ресурса принтера для явной поддержки новой учетной записи.Убедитесь, что эта учетная запись также имеет разрешения для локального принтера и всего остального, что требуется вашему веб-приложению.Не полагайтесь на все, что происходит при входе пользователя в систему, например на подключенные диски, поскольку эта учетная запись не будет входить в обычном смысле.Затем используйте новую учетную запись для пула приложений.


* Если обе машины не присоединены к одному домену Active Directory, это может упростить ситуацию.

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