【问题标题】:What causes System.Drawing.Printing.PrinterSettings.InstalledPrinters to throw Win32Exception "RPC server not available"?是什么导致 System.Drawing.Printing.PrinterSettings.InstalledPrinters 抛出 Win32Exception“RPC 服务器不可用”?
【发布时间】:2010-10-18 14:10:11
【问题描述】:

我有一个正在开发的应用程序,我允许用户在从应用程序打印表单时选择一台打印机作为他们的打印机。我正在使用 .NET 2.0

在设置界面,我调用

System.Drawing.Printing.PrinterSettings.InstalledPrinters 

获取可用打印机列表。

在客户端机器上,属性抛出异常:

System.ComponentModel.Win32Exception: The RPC server is unavailable

客户端报告 Windows 将他的打印机显示为“就绪”,并且客户端可以从打印机打印测试页。但是,我无法在本地重现这个问题,而且我的想法已经不多了。有谁知道什么可能导致这个问题?任何想法或方向都会有所帮助。谢谢

【问题讨论】:

    标签: c# .net printing


    【解决方案1】:

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

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

    net stop "print spooler"
    net start "print spooler"
    

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

    【讨论】:

    • 哇。就我而言,我有一个使用 Crystal Reports 生成 PDF 的 ASP.Net Web 应用程序。原来它在生成 PDF 的过程中抛出了“(0x80004005):RPC 服务器不可用”异常。我不确定为什么它需要运行假脱机程序,但您的解决方案解决了我的问题!
    【解决方案2】:

    如果可以打印,很可能是安全问题。否则我会选择“dead spooler service”,但您的应用更有可能无权与 spooler 服务进行通信......

    【讨论】:

    • 是的,这是一个死机服务。安装打印机驱动程序导致打印机后台处理程序服务终止。在我将此异常隔离到打印机的特定安装而不是所有打印机安装后,我最终将此问题推给了打印机制造商。
    【解决方案3】:

    RPC 服务已关闭或 Windows 防火墙阻止它。

    【讨论】:

      【解决方案4】:

      我在使用 PrinterSettings.InstalledPrinters 时遇到了类似的问题 原因是应用程序以“部分信任”权限运行。

      在 Visual Studio 中,转到 Project Properties\Security 并选择“这是一个完全信任的应用程序”。

      我不确定这是否会对你有所帮助,但它是为我做的。

      【讨论】:

        【解决方案5】:

        这可能与网络打印机有关吗? RPC是Remote Procedure Call,可能是用来检测已安装的网络打印机?

        在谷歌上搜索了一些错误之后:

        InstalledPrinters 使用 WMI 查找打印机。 WMI 反过来使用 RPC。

        让 WMI 返回您的错误可能意味着以下情况:

        • MSDN Support
        • 这可能与帐户有关:检查您的应用程序的本地/网络/系统帐户,并尝试在注册帐户(用户+密码)下运行您的应用程序
        • 还可以查看论坛帖子,为 ASP.NET 应用程序解决此问题:link

        还有一个有用的WMI resource 来解决您的问题。

        【讨论】:

        • 客户端机器上的打印机通过USB连接。
        【解决方案6】:

        另一种可能是 PrintSpooler 服务已被设置为禁用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多