是什么原因导致System.Drawing.Printing.PrinterSettings.InstalledPrinters抛出Win32Exception"RPC服务器不可用"?

Ric*_*d R 5 .net c# printing

我有一个我正在处理的应用程序,我允许用户在从应用程序打印表单时选择要用作打印机的打印机.我正在使用.NET 2.0

在设置屏幕中,我打电话

System.Drawing.Printing.PrinterSettings.InstalledPrinters 
Run Code Online (Sandbox Code Playgroud)

获取可用打印机列表.

在客户端的计算机上,该属性抛出异常:

System.ComponentModel.Win32Exception: The RPC server is unavailable
Run Code Online (Sandbox Code Playgroud)

客户端报告窗口将其打印机显示为"就绪",客户端可以从打印机打印测试页.但是,我无法在本地重现这个问题,而且我的想法已经不多了.有没有人有什么想法会导致这个问题?任何想法或方向都会有所帮助.谢谢

Tim*_*ord 5

在Windows 7中也发生了同样的事情.在服务中停止并启动打印假脱机程序,直到它再次发生.

以下命令可以快速执行此操作:

net stop "print spooler"
net start "print spooler"
Run Code Online (Sandbox Code Playgroud)

注意:以管理员身份运行命令提示符.我做了一个批处理文件,因为它在开发过程中每天发生4-5次.


Kri*_*erA 3

如果可以打印,则很可能存在安全问题。否则我会投票“死后台处理程序服务”,但更有可能的是您的应用程序无权与后台处理程序服务进行通信......