使用远程管理诊断失败

简介

本文可帮助你检查和修复使用 RemoteMgr 时发现的故障。 这基于 iis.net 论坛上的常见问题。

无法连接到远程服务器?

确保客户端和服务器正在使用相同的内部版本。 例如,服务器 Beta 3 RemoteMgr 不适用于 RC1 服务器内部版本。

可能存在与访问控制列表 (ACL) 相关的问题。

查看事件查看器(eventvwr.msc)日志。 使用详细的错误消息和堆栈跟踪记录事件。 查看事件查看器通常会告诉你问题是什么。

更新 WMSvc 绑定后无法连接到远程服务器?

如果在更新 Web 管理服务(WMSvc)配置为运行的端口后发生这种情况,请检查防火墙是否已为服务器启用。 如果为 ON,请为运行 WMSvc 的端口添加新的异常规则(默认值:8172)。 然后,再次尝试连接到服务器。

如果这无法解决问题,请运行以下命令:

netsh http show sslcert

确保端口 8172(运行 WMSvc 的端口)具有 SSL 证书绑定。 此外,请确保证书哈希与 WMSvc 绑定到的证书哈希匹配(在管理服务 UI 中)。

下面是示例输出:

c:\>netsh http show sslcert 
SSL Certificate bindings:
-------------------------
IP:port                 : 0.0.0.0:8172
Certificate Hash        : f06ae62a5275a818338f05ecc80707335be1e204
Application ID          : {00000000-0000-0000-0000-000000000000}
Certificate Store Name: MY
Verify Client Certificate Revocation    : Enabled
Verify Revocation Using Cached Client Certificate Only: Disabled
Usage Check    : Enabled
Revocation Freshness Time: 0
URL Retrieval Timeout   : 0
Ctl Identifier          : (null)
Ctl Store Name          : (null)
DS Mapper Usage    : Disabled
Negotiate Client Certificate    : Disabled

然后,运行以下命令:

netsh http show urlacl

确保 URL https://*:8172/ (将 WMSvc 配置为运行的端口)显示在保留 URL 列表中。

下面是示例输出:

c:\>netsh http show urlacl

URL Reservations:
-----------------
Reserved URL            : https://*:8172/
User: NT SERVICE\WMSvc
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;S-1-5-80-257763619-1023834443-750927789-3464696139-1457670516)

使用 netsh 上一段中提到的命令来确定绑定是否未正确配置。 问题可能是计算机密钥对尝试调整 WMSvc 绑定的管理员没有权限。 在这种情况下,请尝试以下步骤:

  1. 获取计算机密钥的所有权:

    takeown /F %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /R
    
  2. 配置计算机密钥的 ACL,使管理员组具有读取权限:

    icacls %ProgramData%\Microsoft\Crypto\RSA\MachineKeys\bedbf0b4da5f8061b6444baedf4c00b1* /grant Administrators:(R)
    
  3. 保留 WMSvc 的端口 8172。

    netsh http add urlacl url=https://*:8172/ User="NT SERVICE\wmsvc"
    
  4. 将证书与端口相关联:

    netsh http add sslcert ipport=0.0.0.0:8172 certhash=<certHash> appid={d7d72267-fcf9-4424-9eec-7e1d8dcec9a9}
    

每次连接到远程服务器时,都不想在客户端上看到提示?

确保服务器对 WMSvc 使用受信任的根证书。 创建受信任的根证书(如果还没有证书),并在管理服务功能页上,分配该服务要使用的此证书。 这可确保客户端不会收到消息,提示服务器是否受信任(因为证书不受信任)。

其他帮助

如果以前的解决方法没有帮助,请使用以下步骤捕获异常和调用堆栈。 然后在 IIS.NET 论坛发布问题,并包括 eventvwr.msc 日志以及异常和调用堆栈。

下面是有关如何获取异常和调用堆栈的步骤:

  1. 附加到windbgwmsvc.exe

    windbg -pn wmsvc.exe
    
  2. 加载sos.dll,并在发生托管异常时设置断点。

    .loadby sos mscorwks
    sxe clr
    
  3. 键入 g

    g
    
  4. 当异常中断时,打印异常和调用堆栈并将其发送到 iis.net 论坛。

    !pe
    !clrstack