У меня нет проблем с печатью Windows тестовой страницы на принтере через RDP, но приложение, работающее из IIS, не может печатать на общий принтер RDP. После соответствующей настройки PrinterSetting, который работает вне RDP, он видит принтер как недопустимый и отключенный.
Я видел несколько советов по установке разрешения на принтере для пользователя, запускающего приложение IIS, но все параметры безопасности отключены через RDP для перенаправленных принтеров, совместно используемых через RDP.
Оба условия, приведенные ниже, возвращают false через RDP на общий pritner. Я все равно попытался просто распечатать, и, как и ожидалось, получил исключение, так как он не может получить доступ к принтеру.
if (!printDocument.PrinterSettings.IsValid || !IsPrinterOnline())
private bool IsPrinterOnline()
{
bool printerIsOnline = false;
string printerName = _printerName;
string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '{0}'", printerName);
ManagementObjectSearcher searcherPrinters = new ManagementObjectSearcher(query);
foreach (ManagementObject printer in searcherPrinters.Get())
{
printerIsOnline = !printer["WorkOffline"].ToString().Equals("True");
}
return printerIsOnline;
}