使用远程管理诊断失败

简介

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

无法连接到远程服务器?

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

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

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

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

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

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

netsh http show sslcert

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

下面是示例输出:

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