2013-10-25 52 views
1

我出了主意,爲什麼這不工作:printserver引發「Win32錯誤:打印機名稱無效。」儘管異常所提供的服務器路徑是正確的

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

我有打印服務器的初始化問題。即使提供的打印機服務器路徑是有效路徑,上述異常仍會出現。這是因爲我能枚舉所有打印機使用printerServer.GetPrintQueues和foreach 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上。

之前是否有人遇到這個問題?如果是,我可否知道你如何解決這個問題?

百萬在此先感謝。

編輯:

只是另一種「真正的」服務器打印機進行測試,上述方法是工作的罰款。據我所知,Nov​​ell iPrint服務,我不知道它是如何導致問題的行爲。如果有人對使用C#訪問Novell iPrint打印服務器的方式有更多瞭解,請隨時分享。我目前仍在尋找 解決方案。

回答

1

嘿,我正面臨着類似的問題,這是我觀察並作出以下改動,只是嘗試,讓我知道。

由於系統上缺少windows功能/角色「打印和文檔服務」,所以出現此問題。管理多臺打印機或打印服務器以及將打印機遷移到其他Windows服務器以及從其他Windows服務器遷移打印機需要此角色

添加角色轉到控制面板 - >打開或關閉窗口功能 - >單擊複選框「打印和文檔服務」 - >安裝。

如果無法添加它,請與網絡管理員聯繫以安裝此規則。

添加角色後,您可以創建打印服務器對象並獲取相應服務器上的所有打印隊列。

相關問題