2013-10-25 4 views
1

Я из идеи, почему это не работает:printserver throwing «Ошибка Win32: имя принтера недопустимо». исключение, несмотря на пути сервера при условии правильно

PrintServer printServer = new PrintServer("\\\\servername"); 

Я имею вопрос с инициализацией PrintServer. Вышеупомянутое исключение продолжает появляться даже в том случае, если указан путь printerServer, это допустимый путь. Это говорит о том, что я могу перечислять все принтеры с помощью printServer.GetPrintQueues и запрашивать printQueue для получения соответствующего имени HostingPrintServer.

EnumeratedPrintQueueTypes[] queueTypesArray = new EnumeratedPrintQueueTypes[] 
{ 
    EnumeratedPrintQueueTypes.Connections, 
    EnumeratedPrintQueueTypes.Local, 
}; 
PrintQueueIndexedProperty[] indexPropertyArray = new PrintQueueIndexedProperty[] 
{ 
    PrintQueueIndexedProperty.Name 
}; 

PrintServer printServer = new PrintServer(); 
PrintQueueCollection queueCollection = printServer.GetPrintQueues(indexPropertyArray, queueTypesArray); 

foreach (PrintQueue pq in queueCollection) 
{ 
    if (pq.FullName == printerName) 
    { 
     this.printServerName = pq.HostingPrintServer.Name; 
     this.printerName = pq.Name; 
    } 
} 

Я также попытался использовать способ, которым это сообщение предлагалось для получения DNS hostEntry, но без везения.

PrintServerException - "...name is invalid" even though I can access the path from windows

Для информации, я использую Visual Studio 2010 работает на Windows XP с двумя сетевыми принтеров. Принтеры могут выполнять печать без каких-либо проблем с помощью PrintDocument, а принтеры также отображаются на PrintDialog.

Перед этим стоит вопрос? Если да, могу ли я узнать, как решить эту проблему?

Миллион заранее.

EDIT:

Просто протестировано с другой «реальным» принтером сервера, выше метод работает отлично. Считается, что сервис Novell iPrint, который я не уверен, как его поведение вызывает проблему. Если кто-то знает больше о том, как получить доступ к серверу печати Novell iPrint с помощью C#, не стесняйтесь делиться. Я в настоящее время ищут решение .

ответ

1

эй я столкнулся с аналогичной проблемой, это то, что я наблюдал и сделал следующие изменения, просто попробуйте и дайте мне знать.

Эта проблема возникла из-за особенностей/роли Windows. «Система печати и документа» отсутствует в системе. Эта роль требуется для управления несколькими принтерами или серверами печати и переноса принтеров на другие серверы Windows.

Чтобы добавить роль Перейти на панель управления-> Включить или отключить функцию Windows, установите флажок «Печать и обслуживание документов» -> установить.

Обратитесь к администратору сети, чтобы установить это правило, если вы не можете его добавить.

После добавления роли вы можете создать объект сервера печати и получить все распечатки на соответствующем сервере.

Смежные вопросы