模拟域用户帐户的应用程序池下的 WCF 服务 运行 为一个域帐户而不是另一个域帐户打印到网络打印机

WCF Service running under app pool impersonating domain user account prints to network printer for one domain account but not another

我正在使用 Windows Server 2016。运行 在 Windows 10 台机器上。

我们有一位系统管理员最近离开了我们公司。他设置了网络服务器,所以我有权使用它等等。如果我在应用程序池上模拟我自己的域帐户 运行 连接我的 WCF 服务,该服务可以成功打印到网络打印机。

我让一位同事创建了一个新的域帐户,该帐户的目的是供应用程序池模拟,以便 wcf 服务可以在我离开公司时打印到网络打印机。我们将新域用户添加到打印机并授予它权限,当应用程序池在这个新域用户下 运行ning 时,我可以看到作业已发送到打印机,但它不打印。如果我在我的域帐户下将应用程序池切换回 运行,它可以正常打印。我发现唯一看起来不同的是在服务器管理器 -> 打印管理 -> 打印服务器 -> 打印机 -> 所需打印机下,我的域帐户列在具有特殊权限的打印机的高级安全设置下,但是未列出新的域帐户。我没有添加新域帐户的权限。

这使用 System.Drawing.Printing.PrintDocument.Print() 并且调用打印时没有发生异常,它挂起几秒钟,作业显示在打印队列中并在没有打印的情况下迅速消失。

我只是想知道这最后一段是否是 WCF 服务无法打印的原因?

所以在与 IT 部门的另一个人合作后,我发现这不起作用的原因是服务器没有设置为打印服务器,所以在将其添加到 Web 服务器后,它能够发送和打印。

当它 运行 在我下面时,它正在将打印作业重定向到我的本地计算机,这就是它能够打印的原因。