【问题标题】:Application.Printers slow on a Remote Desktop Session, why?Application.Printers 在远程桌面会话中变慢,为什么?
【发布时间】:2018-07-12 02:33:14
【问题描述】:

我在许多 Microsoft Access 应用程序中都有代码,它们使用以下代码填充所有可用打印机的名称列表:

For Each ptr In Application.Printers
...

在本地运行应用程序时,使用此代码的程序运行速度非常快。

在远程桌面会话中运行相同的应用程序通常只需几秒钟。

对于一个客户端,这行代码需要 90 秒才能执行,但每个用户每天只执行第一次,即使在远程桌面会话正确终止并重新启动之后也是如此。然后问题会在几个小时后或第二天再次出现。

服务器是 Windows Server 2008 R2 Datacenter, SP1
Microsoft Office 专业增强版 2010 14.0.7188.5002

我错过了什么?

【问题讨论】:

  • 类似文件 > 打印的填充速度也很慢?当您的应用程序打开时,您可以运行一些东西来查询打印机并将该信息存储在后台(例如填充一些您可以稍后检查的文件的批处理脚本),然后在您需要时使用该信息打印到特定的打印机应用程序.打印机。

标签: vba ms-access remote-desktop


【解决方案1】:

如果您允许远程 RDP 会话将您的 LOCAL 打印机包含在该列表中,那么通过网络获取打印机列表将会相当缓慢。

当您启动 RDP 客户端时,您可以禁用远程系统的这一“功能”,该“功能”能够使用您的本地打印机来运行在该远程服务器上的软件。更糟糕的是,您的本地会话可能在您的网络上有几台打印机 - 因此整个过程可能需要相当长的时间 - 而且速度可能相当慢。

所以禁用您的本地打印机使用 - 该选项允许远程服务器与您的本地打印机通信并使用您的本地打印机 - 一个缓慢的过程。

我建议您在他们启动 RDP 客户端时取消选中此选项:

【讨论】:

  • Albert,我们想要并且需要使用本地打印机。此外,我们还有许多其他客户通过 RDC 使用完全相同的软件版本/版本,不会遇到 90 秒的延迟,并且他们会根据需要打开本地打印机。他们是否有任何已知的组策略设置或某些打印机驱动程序会产生如此长的延迟?
  • @MichaelDommer:是的,但他们没有相同的打印机。并且打印机可能被关闭,导致等待超时。因此,请让该客户端在不连接本地打印机的情况下登录,并检查延迟是否仍然存在。
  • 毫不奇怪。我的计算机上安装了 8 或 9 台打印机,但其中有几台仅在我位于特定客户站点时才存在。事实上,当糖蜜从形式变为设计视图时,我经常收到 SLOW(这是由于那些缺少打印机)。因此,当访问尝试查看+查看这些打印机时,速度很慢——而且没有 RDP。所以零惊喜,有些人会遇到延迟,有些人不会(而且没有 RDP)。如果您在关闭本地打印机的情况下进行测试,那么至少您可以确定延迟是否是由于本地资源造成的,或者说远程系统上缺少一些网络打印机。
【解决方案2】:

事实证明,远程桌面服务器上设置的打印机驱动程序错误或有故障或不知何故不合作是罪魁祸首。即使关闭本地打印机,也会出现 90 秒的延迟。删除服务器上的错误打印机设置解决了该问题。使用本地打印机只会导致几秒钟的延迟。每个人都建议问题可能出在本地打印机导致关闭它们,然后消除了本地打印机作为罪魁祸首,所以感谢大家的意见。

【讨论】:

    猜你喜欢
    • 2011-06-02
    • 1970-01-01
    • 2010-11-05
    • 2022-10-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多