我在Windows服务应用程序上托管了一个WCF服务,它应该在托管它的机器上返回所有已安装的打印机。我使用 System.Drawing.Printing.PrinterSettings.InstalledPrinters 来检索已安装的打印机列表,但我不知道为什么在Windows Vista中它不会返回所有打印机。
主机Windows服务使用的帐户运行,该帐户是Administrators组的成员,具有“作为服务登录”权限,并添加了具有“requireAdministrator”执行级别的app.Manifest。
更新: 如果我在Vista中的Windows应用程序上使用InstalledPrinters属性,它将返回所有打印机!
答案 0 :(得分:0)
您是否为运行其他成员尚未安装的应用程序的用户安装了任何打印机?
这可能是一个检查的途径,因为可能没有为您正在运行该服务的用户设置任何仅为您正在运行该应用程序的用户设置的打印机。
(当然,如果你作为同一个用户同时运行,那么这是一个有争议的问题)
答案 1 :(得分:0)
您应该在本地安装打印机,以便从Windows服务中使用它们。当您启动“添加打印机”向导时,您可以选择是否添加本地或远程打印机。