2014-01-27 43 views
40

这是我如何使打印机可用于ColdFusion的基本理解。如何在不重新启动服务的情况下重新加载coldfusion中的打印机?

  1. 使用CF 服务正在运行的帐户远程登录到运行CF的服务器。
  2. 打开窗口控制面板并添加 打印机。
  3. 重新启动CF服务。

我的问题:有没有什么办法来重新加载打印机,而无需重新启动CF服务?

这是我们正在尝试排除故障的问题。 CF错误细节:

Error: Printer \\(server)\(printerName) is not available. Available printers are: , şៈ᠘, , , , 凙ᜀᚈ, , 疠쐵䚏, , . 

重新启动CF服务修复这一点,但它似乎是很经常发生的最近。我想知道是否有一些Java代码来重新加载打印机,因此可以自动完成。我们正在使用CF9。

+0

有CF管理员界面可以提供这种功能 - 我几年前从CF移开,所以这是从我的记忆 –

+6

如果(并且只有)CF与打印机“The Java Way”交谈,那么这可能是相关:http://bugs.java.com/view_bug.do?bug_id=4744405。它说它在“Java 6,build 33”中得到修复,我想在更新1后包含Java 6(对此不太确定)。此外,很明显,即使使用适当的Java版本,应用程序(CF)也必须调用[javax.print.PrintServiceLookup.lookupDefaultPrintService()](http://docs.oracle.com/javase/7/docs /api/javax/print/PrintServiceLookup.html#lookupDefaultPrintService())以获取刷新列表。 – daveloyall

回答

0

我已经使用过Java和打印机,并且正如daveloyall在评论中指出的,问题可能来自Java。 测试显示,当您启动Java应用程序时,它会拍摄当前打印机列表的快照,并且从不更新它,因此刷新打印机列表的唯一方法是重新启动应用程序。

1

要使用网络打印机,ColdFusion需要在具有network resources权限的域帐户下运行。 ColdFusion Windows Service运行的默认用户是localSystem。该用户帐户通常对本地系统拥有许多权限,但对网络没有权限。通常的解决方案是为此创建一个域帐户,然后将ColdFusion Windows服务设置为在该服务控制面板中以该用户身份运行。

我最近在我的服务器机器上安装了一台打印机,它马上被检测到,没有任何问题。 我在Windows 7 64位系统上使用CF10。所以下面的代码列出了我的打印机没有任何重新启动的服务:

<cfdump var="#GetPrinterInfo()#"> 

希望这会有所帮助。

+0

非常有趣的问题。和你我一样,在过去遇到同样的问题......解决问题后,仔细研究每一个可能的调整和设置......我终于发现这是账户许可的问题......用户策略和子组。在我的情况下,我能够修复它。请让我知道,如果你找到你的解决方案。这是否解决了问题或者更多呢?谢谢。 – Anurag

0

是的,一个sudo会将它整理出来...... 或者,系统管理员将同步设置为更短的时间间隔(但会增加分配的CPU时间)。

相关问题