幾年前,另一個聰明的程序員建立了一個VB.NET服務來打印服務器安裝的打印機。作業查詢數據庫表以查看它是否有任何打印請求,它們指定要打印的文件以及要將其發送到的打印機的名稱。該作業構造了一個3部分的命令行咒語並執行它;它會有點像這樣:Old-School Windows 2000打印,或何時是端口名稱計算機?
net use LPT2: IP_1.2.3.4 /user:domain\userid password >> netuse1.out
copy someExistingFile.pdf LPT2 >> copy.out
net use LPT2: /delete >> netuse2.out
我們被要求做這個工作無關的其他變化,並愉快地遵守。只有我們部署和運行的任何版本的作業都不會打印。第一條語句失敗,出現「發生系統錯誤67,無法找到網絡名稱」。
作業查詢了註冊表以查找用戶指定的打印機的端口名稱。它嘗試的端口確實是我們在查看打印機屬性時看到的端口「名稱」。那就是,呃,是正確的。
除了...等一下,到底什麼是「端口名稱」?它不是一個有效的IP地址(儘管它是打印機本身的IP地址,前綴爲「IP_」。我在NET USE上找不到任何有關打印機端口,只有計算機/共享[和可選卷]的信息。
任何人都可以擺脫任何光線是否這會工作過?
[當然,沒有人能爲我們提供的源動力,實際上仍然有效的服務的版本,我們已經沒有碰過這部分服務,只是在這個打印之前,而客戶發誓他們沒有。Grrr ...]
我們正在尋找一種更現代化的打印方式,儘管它需要運行作爲一項服務而複雜化測試的東西。
這聽起來不錯,雖然我沒有辦法驗證。 –