历史:此错误的历史可以追溯到 Windows 2000,基本上尚未得到解决。
受影响的平台:Windows Server 2008 R2、Server 2008、Server 2003 R2、Server 2003、Server 2000(32 位和 64 位安装均受影响)。
错误消息
Event ID: 7024 The Routing and Remote Access service terminated with service-specific error 2 (0x2).
Event ID: 7024 The Routing and Remote Access service terminated with service-specific error 31 (0x1F).
Event ID: 7024 The Routing and Remote Access service terminated with service-specific error 20205 (0x4EED).
Event ID: 7024 The Routing and Remote Access service terminated with service-specific error 193 (0xC1).
Event ID: 20103 Unable to load C:\WINDOWS\System32\iprtrmgr.dll
. (32 位安装)。Event ID: 20103 Unable to load C:\WINDOWS\SysWOW64\iprtrmgr.dll
. (64 位安装)。
答案1
(这是 KCotreau 的原始答案,但他将其包含在问题中。重新发布为实际答案)
原因:造成此错误的基本原因有两个。
- 如果您运行的是 IPv6,则注册表中的项不正确。
- TCP/IPv4 损坏。
相关原因
这种情况发生在几台装有 Broadcom NetXtreme II 适配器的 Dell Windows 2003 R2 64 位服务器上。我的问题是上述第二个原因,即 TCP/IP 损坏,我相信这是在安装 Broadcom 适配器的驱动程序时由于某种原因而发生的。其他适配器也可能发生这种情况,但互联网上肯定有大量未解决的案例,涉及各种 Broadcom 适配器。
其他因素
在我使用 Dell 专用的 Windows Server 2003 R2 介质和从批量许可网站下载的 Microsoft 介质进行测试时,即使在全新安装中也会出现这种情况。无论使用哪种介质,都会发生这种情况。
对我或互联网上的大多数人来说无效的故障排除:
- 重新安装干净。
- 运行 sfc /scannow(没有错误)。
- 比较并替换来自工作服务器的 iprtrmgr.dll。
- 从设备管理器中删除 NIC 后重新安装。
- 正在运行
NETSH INT IP RESET C:\reset.log
或NETSH RESET WINSOCK
。 - 跑步
NETSH WINSOCK RESET
。 - 设置后检查幽灵适配器
devmgr_show_nonpresent_devices=1
,然后在设备管理器中显示隐藏的设备(我没有)。 - 重新注册 Oledb32.dll 和 Oledb32r.dll ,重命名
C:\Windows\System32\ias \dnary.mdb
、 和ias.mdb
文件并重新启动 RRAS。这些文件位于C:\Windows\SysWOW64
64 位系统上的目录中。这是在 KB840696 中http://support.microsoft.com/kb/840686。
解决方案
- 如果您使用的是 Server 2008,并且正在运行 TCP/IPv6,那么您的问题可能不是 TCP/IPv4 损坏,而是您有这个额外的密钥,
HKEY_LOCAL_MACHINE\System\currentcontrolset\services\remoteaccess\routermanagers\IPV6
您将在导出备份后将其删除。删除此密钥是一个简单的解决方案,它广泛帮助了互联网上的许多人。如果您仍想使用 TCP/IPv6 协议,您可能需要做更多。由于我没有应用到我的服务器,我无法测试它,您可能仍然有 IPv6 损坏,并且可能需要通过删除并重新安装 TCP/IPv6 来排除故障,类似于下面的解决方案。上述解决方案可能只是通过避免问题来掩盖潜在的损坏。 如果您没有运行 IPv6,则很有可能 TCP/IPv4 已损坏,解决方案是重新安装它。如果您从未注意到,如果您尝试卸载 TCP/IP,它会变灰。为了解决这个问题,我遵循了 KB 325356:http://support.microsoft.com/kb/325356。这表示它适用于域控制器,但也适用于成员服务器。步骤如下:
- 以防万一,请在 RRAS mmc 中禁用 RRAS,因为这将卸载它。
- 备份您的注册表。
- 如果您只是在成员服务器上,请忽略步骤 1-4 和步骤 21。
- 重新启动域控制器。
- 当出现 BIOS 信息时,按 F8。
- 选择“目录服务还原模式”,然后按 ENTER。
- 使用目录服务还原模式密码登录。
- 单击“开始”,然后单击“运行”。
- 在打开框中,键入 regedit,然后单击确定。
- 找到以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
- 右键单击每个键,然后单击“删除”。
- 单击“是”确认删除每个键。
- 关闭 Regedit。
- 在 %winroot%\inf 中找到 Nettcpip.inf 文件,然后在记事本中打开该文件。
- 找到 [MS_TCPIP.PrimaryInstall] 部分。
- 编辑 Characteristics = 0xa0 条目并将 0xa0 替换为 0x80。
- 保存文件,然后退出记事本。
- 在“控制面板”中,双击“网络连接”,右键单击“本地连接”,然后选择“属性”。
- 在常规选项卡上,单击安装,选择协议,然后单击添加。
- 在“选择网络协议”窗口中,单击“从磁盘安装”。
- 在“复制制造商文件自:”文本框中,键入
c:\windows\inf
,然后单击“确定”。 - 选择 Internet 协议 (TCP/IP),然后单击“确定”。(注意:此步骤将返回到“本地连接属性”屏幕,但现在“卸载”按钮可用)。
- 选择“Internet 协议 (TCP/IP)”,单击“卸载”,然后单击“是”。
- 重新启动计算机,然后按照步骤 2 - 4 中选择目录服务还原模式。
- 在“控制面板”中,双击“网络连接”,右键单击“本地连接”,然后选择“属性”。
- 在常规选项卡上,单击安装,选择协议,然后单击添加。
- 在“选择网络协议”窗口中,单击“从磁盘安装”。
- 在“复制制造商的文件来源”文本框中,键入
c:\windows\inf
,然后单击“确定”。 - 选择“Internet 协议 (TCP/IP)”,然后单击“确定”。
- 重启你的电脑。
配置并启用路由和远程访问。此时,您的 RRAS 应该启动。
相关问题及解决方案:
当我输入静态 IP 地址时,虽然它会保留静态,但属性会重置回“自动获取 IP 地址”。导航到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network
Config 键并删除它。重新输入您的静态设置,它们应该会保留,然后重建该 Config 键。
我希望这能为你们许多人解决这个难题。
答案2
我知道这是一个很老的帖子,但即使在 Server 2016 中也会出现同样无用的错误。
幸运的是,对我来说原因是 IIS 和 RRAS 之间的证书不匹配。
解决方法是对默认 IIS 站点使用与我在 RRAS 中使用的相同的证书。
答案3
服务器 2019 上的 RRAS 和 RemoteAccess 中的 7024 或 20269/20153 事件,在 NPS 中的 4405 事件之后
我在 NPS -> Accounting 中更改了日志文件路径。之后 RRAS 启动了。
答案4
就我的情况来说,解决方案非常简单:
- 停用路由和远程访问服务器
- 重新激活并配置路由和远程访问服务器。幸运的是,我们的配置并不复杂……