如何排除 RPC 终结点映射程序错误

发布网友 发布时间:2022-04-23 15:51

我来回答

1个回答

热心网友 时间:2023-08-28 23:21

RPC 可以使用多达 65535 个端口。默认情况下,所有版本的 Windows 都只使用 1024-5000 之间的端口。 要修复 RPC 终结点映射程序,请按照下列步骤操作:
1.
在出错的服务器上验证下列服务的状态和启动类型:
计算机类型
RPC 服务
RPC Locator 服务
基于 Windows Server 2003 的域控制器
已启动,自动
已停止,手动
基于 Windows Server 2003 的成员服务器
已启动,自动
已停止,手动
基于 Windows Server 2003 的服务器
已启动,自动
已停止,手动
基于 Windows 2000 Server 的域控制器
已启动,自动
已启动,自动
基于 Windows 2000 Server 的成员服务器
已启动,自动
已启动,手动
基于 Windows 2000 Server 的服务器
已启动,自动
已停止,手动
如果对 RPC 服务或 RPC Locator 服务的设置进行更改,则应重新启动计算机,然后再次测试问题。
2.
验证注册表中是否存在以下项:
回到顶端
Microsoft Windows XP 和 Microsoft Windows 2000
ncacn_http REG_SZ rpcrt4.dll
ncacn_ip_tcp REG_SZ rpcrt4.dll
ncacn_nb_tcp REG_SZ rpcrt4.dll
ncacn_np REG_SZ rpcrt4.dll
ncacn_ip_udp REG_SZ rpcrt4.dll
回到顶端
Microsoft Windows NT 4.0
ncacn_np REG_SZ rpcltcl.dll
ncalrpc REG_SZ ncalrpc
ncacn_ip_tcp REG_SZ RpcLtCcm.dll
ncadg_ip_udp REG_SZ RpcLtCcm.dll
ncadg_nb_tcp REG_SZ rpcltccm.dll
ncacn_http REG_SZ rpcltccm.dll
回到顶端
Microsoft Windows 98
ncacn_np REG_SZ rpcltcl.dll
ncalrpc REG_SZ ncalrpc
ncacn_ip_tcp REG_SZ rpcltc3.dll
ncacn_http REG_SZ rpcltccm.dll
要验证客户端注册表设置,请按照下列步骤操作:
a.
单击“开始”,单击“运行”,在“打开”框中键入“regedit”,然后单击“确定”。
b.
在注册表编辑器中,找到以下子项:
HKEY_Local_Machine\Software\Microsoft\Rpc
c.
确保前面列出的五个默认值都存在。如果缺少某些值或全部值,您可以手动添加缺少的值,方法是:右键单击“ClientProtocols”,单击“新建”,然后单击“字符串值”。
3.
验证 DNS 是否正常工作。为此,请按照下列步骤操作:
a.
在出错的计算机上,单击“开始”,单击“运行”,在“打开”框中键入“cmd”,然后单击“确定”。
b.
从命令行中键入 Netdiag -v 或键入 ping -a IP_of_problem_server,以确保主机记录解析为正确的计算机。
4.
验证大于 1024 的端口未被阻止。客户端连接到端口 135 上的 RPC 终结点映射程序。RPC 终结点映射程序随后告知客户端,请求的服务正在侦听 1024-65535 之间的哪些随机分配端口。 硬件防火墙、基于 Windows Server 2003 的计算机上和基于 Windows XP 的计算机上的 Windows 防火墙、第三方防火墙软件或内置有防火墙功能的防病毒软件都可能阻止端口。默认情况下,必须打开 135 TCP/UDP 端口和 1024-65535 之间的 TCP 端口,RPC 才能正常工作。不过,您可以* RPC 使用大于 1024 的端口。但是,RPC 终结点映射程序始终在端口 135 上运行。
还可以使用 Portqry 工具验证所需的端口是否已打开。必须在未出现任何 RPC 错误的计算机上使用 -n 开关对出现 RPC 错误的计算机运行 Portqry 工具。为此,请按照下列步骤操作:
a.
单击“开始”,单击“运行”,在“打开”框中键入“cmd”,然后单击“确定”。
b.
键入 portqry -n problem_server -e 135。
将出现类似以下示例的输出:
Querying target system called: problem_serverAttempting to resolve name to IP address... Name resolved to 169.254.1.1 querying... problem_serverTCP port 135 (epmap service):LISTENING Using ephemeral source port Querying Endpoint Mapper Database... Server's response: UUID:f5cc59b4-42-101a-8c59-08002b2f8426 NtFrs Service ncacn_ip_tcp:65.53.63.16[1094] UUID:e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface ncacn_ip_tcp:65.53.63.16[1025] UUID:e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface ncacn_http:65.53.63.16[1029] UUID:e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface ncacn_http:65.53.63.16[6004]
如果端口 135 被阻止,将显示以下内容:
TCP port 135 (epmap service):NOT LISTENING
但是,对于这些 RPC 终结点映射程序错误,可能是大于 1024 的端口而非端口 135 被阻止。 从输出中,您了解到 DC 将端口 1094 用于 FRS,将端口 1025、1029 和 6004 用于 Active Directory 复制。可以再次使用 Portqry 工具检查这些端口。例如,可以带 -o 开关使用 Portqry 工具以同时测试所有端口。例如,键入 portqry -n problem_server -o 1094,1025,1029,6004
如果端口均响应为“LISTENING”,则此问题可能不是由被阻止的端口引起的。如果所有端口均响应为“NOT LISTENING”,则端口可能被阻止。
5.
可以使用三个可以添加到 HKEY_Local_Machine\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 子项中的 REG_DWORD 值来帮助解决 RPC 问题。
注意:默认情况下这三个条目均不存在。
MaxUserPort
此条目使更多端口可用。
TcpTimedWaitDelay
如果将该值从默认设置 240 秒减小到一个较小的值,将会使端口较早过期。此参数确定当连接被关闭时,它停留在 TIME_WAIT 状态的时间长度。当连接处于 TIME_WAIT 状态时,不能重新使用套接字对。这也称为 2MSL 状态,因为该值应该是网络上最大片段生命周期的两倍。有关详细信息,请参阅 RFC 793。
TcpMaxDataRetransmissions
默认值为 5。可以尝试 4 或 3,但是不要尝试小于 3 的值。此参数控制在中止连接之前 TCP 重新传输单个数据片段(不是连接请求片段)的次数。在一次连接中,每次重新传输的超时值都是上一次的两倍。当响应恢复时,超时值将重置。在每次连接中,都会使用历史上测量的往返值(平滑往返时间或 SRTT)动态调整重新传输超时 (RTO) 值。新连接中的起始 RTO 由 TcpInitialRtt 注册表值控制。
6.
如果 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet 注册表项存在,并且未列出任何值,则 RPC 只有一个可用端口。默认情况下,此注册表项不存在;如果在此项下未列出任何值,请删除此项,然后重新启动服务器。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com