启用 RPC 状态信息

可以收集两个不同级别的 RPC 运行时状态信息: 服务器 信息和 完整 信息。 必须先启用此信息收集,然后调试器或 DbgRpc 才能用于分析状态信息。

只有 Windows XP 和更高版本的 Windows 支持收集 RPC 状态信息。

收集 服务器 状态信息非常轻量。 每次 RPC 调用大约需要 100 个计算机指令,因此即使在性能测试期间,也无法检测到负载。 但是,收集此信息会占用每个 RPC 服务器) 大约 4KB 的内存 (,因此不建议在已遇到内存压力的计算机上使用内存。 服务器 信息包括有关终结点、线程、连接对象和服务器调用 (SCALL) 对象的数据。 这足以调试大多数 RPC 问题。

收集 完整 状态信息更重。 它包括 服务器 级别收集的所有信息,此外,还包括客户端调用 (CCALL) 对象。 通常不需要完整的状态信息。

若要允许在单个计算机上收集状态信息,请运行 组策略 编辑器 (Gpedit.msc) 。 在“本地计算机策略”下,导航到 “计算机配置/管理模板/系统/远程过程调用”。 在此节点下,你将看到 “维护 RPC 故障排除状态信息” 项。 编辑其属性时,将看到五种可能的状态:

没有
不会维护任何状态信息。 除非计算机遇到内存压力,否则不建议这样做。

服务器
将收集服务器状态信息。 这是单台计算机上的推荐设置。


将收集完整的状态信息。

Auto1
在 RAM 小于 64 MB 的计算机上,这与 None 相同。 在 RAM 至少为 64 MB 的计算机上,这与 服务器相同。

Auto2
在运行 RAM 少于 128 MB 的 Windows Server 2003 的计算机上,或任何 Windows XP 计算机上,这与 None 相同。 在具有至少 128 MB RAM 的 Windows Server 2003 计算机上,这与 服务器相同。

这是默认设置。

如果要在一组联网计算机上同时设置这些级别,请使用组策略编辑器将计算机策略推出到首选计算机集。 策略引擎将负责将所需的设置传播到首选计算机集。 在这种情况下 ,Auto1Auto2 级别特别有用,因为每台计算机上的操作系统和 RAM 量可能会有所不同。

如果网络包含运行早于 Windows XP 的 Windows 版本的计算机,则这些计算机上的设置将被忽略。