了解 RPC 客户端访问

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2016-11-28

在 MicrosoftExchange Server 2007 中,引入了客户端访问服务器角色,用于处理到 Exchange 邮箱的传入客户端连接。虽然大多数类型的客户端连接是连接到客户端访问服务器,但是当 Microsoft Office Outlook 使用 MAPI 协议在内部运行时,仍会直接连接到邮箱服务器。

随 Exchange Server 2010 引入了一项新服务,从而使这些 MAPI 连接可以由客户端访问服务器进行处理。RPC 客户端访问服务通过客户端访问服务器的单一共同路径提供数据访问,公用文件夹请求(仍直接对邮箱服务器进行这些请求)除外。此项更改以更加一致的方式对客户端应用业务逻辑,在发生故障转移时提供了更好的客户端体验。

目录

RPC 客户端访问服务和通讯簿服务

RPC 客户端访问服务的优点

客户端访问服务器阵列

配置 RPC 客户端访问服务和通讯簿服务

RPC 客户端访问服务和通讯簿服务

除了将对传入 Outlook 邮箱连接的处理移动到客户端访问服务器以外,在 Exchange 2010 中,目录访问也由客户端访问服务器处理。有关目录访问的详细信息,请参阅了解通讯簿服务

Microsoft Outlook 仍直接连接到邮箱服务器来访问公用文件夹数据库。如果客户端尝试连接到邮箱服务器以进行公用文件夹访问,则 RPC 客户端访问服务 (MsExchangeRpc) 会应答 RPC 终结点。如果该终结点位于安装了邮箱服务器角色的服务器上,则 RPC 客户端访问服务只允许公用文件夹登录,并且会提供对客户端访问服务器或客户端访问服务器阵列的引用。如果该终结点位于客户端访问服务器或客户端访问服务器阵列上,则它只允许私人文件夹登录,并且会提供对邮箱服务器的引用以进行公用文件夹访问。

Exchange 2007 与 Exchange 2010 之间的客户端连接差异

RPC 客户端访问服务的优点

RPC 客户端访问服务有许多优点。客户端在邮箱故障转移过程中经历的停机时间更少,因为所有连接都通过客户端访问服务器建立。当在 Exchange 2007 中进行故障转移时,Outlook 客户端会在一段时间内从邮箱服务器断开连接,这段时间取决于客户端的网络配置。在 Exchange 2010 中,如果客户端访问服务器阵列中的单个客户端访问服务器出现故障,则客户端将立即重定向到阵列中的另一个客户端访问服务器。如果属于数据库可用性组 (DAG) 的邮箱服务器出现故障,则客户端只会在装入故障转移数据库所需的时间量内断开连接。

通过客户端访问服务器的负载平衡阵列,可以在阵列中的所有客户端访问服务器间均匀地分布通信负载。

通过此新体系结构解决的其他问题包括以下各项:

  • 与在不同客户端上以不同方式显示的邮件有关的一些问题。

  • 将证书上载到全局地址列表时出现的问题。

  • 无法为隐藏的用户创建配置文件。

  • 以不一致的方式将业务逻辑应用于客户端。

  • 公用文件夹连接到邮箱服务器(而不是客户端访问服务器)上的 RPC 客户端访问服务。

此外,DSProxy 服务已被删除,并且由新的通讯簿服务负责更新证书和通讯组列表成员身份并维护 Outlook 客户端的委派信息。

MAPI 客户端连接

在 Exchange 2007 中,对于如 Outlook Web 服务(包括可用性服务和外出设置)及脱机通讯簿下载这样的 HTTPS 连接,Exchange 和其他 MAPI 客户端与客户端访问服务器进行通信,但是对于目录服务查询,则直接与邮箱服务器上的 MAPI RPC 组件和全局编录服务器上的 NSPI 终结点进行通信。

在 Exchange 2010 中,这些连接在客户端访问服务器或客户端访问服务器阵列的 MAPI RPC 连接点上建立。

通迅簿服务

在以前的 Exchange 版本中,由 DSProxy(一项引用服务,用于告知 Outlook 客户端在何处可找到名称服务提供程序接口 (NSPI) 终结点)负责将 Outlook 定向到全局编录服务器。DSProxy 位于邮箱服务器上。Exchange 2010 中已消除了 DSProxy,将其替换为通讯簿服务。

目前,当 Outlook 客户端对客户端访问服务器发出请求时,会导致两个可能的操作之一。

  • 如果用户的邮箱位于 Exchange 2010 邮箱服务器上,则请求由当前 Active Directory 站点中的客户端访问服务器处理,或者如果用户的邮箱位于其他 Active Directory 站点中,则请求会被代理到目标 Active Directory 站点。

  • 如果用户的邮箱位于旧版 Exchange 邮箱服务器上,则目录请求是指用户的邮箱服务器。旧版邮箱服务器不能直接与 Exchange 2010 客户端访问服务器进行通信以获取目录信息。

通讯簿服务还提供有关可写入域控制器和全局地址列表访问的信息。有关通讯簿服务的详细信息,请参阅了解通讯簿服务

客户端访问服务器阵列

除了 RPC 客户端访问服务之外,Exchange 2010 还向 Exchange 组织引入了一个新的逻辑结构:客户端访问服务器阵列。当在某个 Active Directory 站点中定义了客户端访问服务器阵列时,阵列会在该 Active Directory 站点中充当所有客户端连接的单个联系点。一个客户端访问服务器阵列可以包括一个或许多客户端访问服务器。

客户端访问服务器阵列的体系结构。

每个 Active Directory 站点都可以有一个客户端访问服务器阵列。客户端访问服务器阵列不提供负载平衡。仍然需要单独的负载平衡解决方案。有关负载平衡的详细信息,请参阅了解 Exchange 2010 中的负载平衡

建议您创建客户端访问服务器阵列,即使在组织中只有一个客户端访问服务器也是如此。创建客户端访问服务器阵列后,客户端会通过客户端访问服务器阵列的虚拟名称进行连接,而不是直接连接到单个客户端访问服务器的完全限定域名 (FQDN)。如果需要在 Active Directory 站点中更换一个客户端访问服务器或添加另一个客户端访问服务器,则不必在客户端上更新配置文件。

在某个 Active Directory 站点中定义了客户端访问服务器阵列之后,该 Active Directory 站点中的所有客户端访问服务器都会自动成为客户端访问服务器阵列的一部分。

配置 RPC 客户端访问服务和通讯簿服务

若要配置 RPC 客户端访问服务和通讯簿服务,必须执行以下步骤。

  1. 创建客户端访问阵列

  2. 配置负载平衡

  3. 配置 IP 端口

  4. 配置 RPC 加密设置

  5. 配置邮箱数据库

  6. 确保低延迟和足够的网络速度

创建客户端访问阵列

您可以使用下面的命令在 Active Directory 站点中创建客户端访问阵列。

New-ClientAccessArray -Name name -Site site_name -FQDN internal_only_CAS_Array_FQDN
注释注意:
在创建了客户端访问阵列之后,还需要在 DNS 中创建地址并将其与用于客户端访问阵列的虚拟 IP 地址相关联。

命令中指定的 (FQDN) 只可在内部解析,这十分重要。如果该名称也可在外部解析,则这些外部客户端会尝试通过 TCP 连接(而不是 HTTPS)连接到阵列。

配置负载平衡

建议使用负载平衡,以获得高可用性、进行故障转移并在多个服务器间分布通信负载,从而帮助提高性能。选择负载平衡解决方案时,请考虑以下事项:

  • Windows 故障转移群集服务器不支持 Windows 网络负载平衡。

  • 您不能跨多个 Active Directory 站点使用一个客户端访问阵列。而是需要在这些站点内创建两个客户端访问阵列并分别进行负载平衡。

  • 硬件负载平衡器通常监视返回通信、端口可用性或服务可用性,以确保不会向无法应答客户端请求的服务器提供网络连接。

  • 某些负载平衡解决方案(如 ISA 2006 或 TMG 2010)无法进行 RPC 负载平衡或监视 RPC 服务。不建议使用这些解决方案,除非所有客户端都通过 Outlook Anywhere 进行连接,并且所有通信都封装在 HTTP 之内。

有关负载平衡的详细信息,请参阅了解 Exchange 2010 中的负载平衡

配置 IP 端口

IP 端口是一个通路,信息可以通过其从来源计算机传递到目标计算机。默认情况下,Windows Server 2008 R2 上的传出连接的动态端口范围为 49152 至 65535。Exchange 2010 客户端访问将此范围更改为 6005 至 65535。扩展该范围是为了向大型部署提供足够的伸缩性。这涉及到大范围的端口,用于通过防火墙在客户端与客户端访问服务器或客户端访问阵列之间进行平衡。

通过固定 MAPI 和目录终结点,可以极大减少进行负载平衡所需的端口数。MAPI 终结点可以在注册表中进行静态配置,而目录终结点可以在配置文件中进行固定。

若要固定 MAPI 终结点,请在注册表中使用以下设置。

“HKLM\SYSTEM\CurrentControlSet\ Services\MSExchangeRPC\ParametersSystem\TCP/IP Port [DWORD]”为要使用的 IP 端口的值。

若要固定目录服务终结点,请在注册表中编辑 RpcTcpPort 值。

HKLM\SYSTEM\CurrentControlSet\Services\MSExchangeAB\Parameters\RpcTcpPort [String] 为要使用的 IP 端口的值。

注释注意:
建议您不要更改 Outlook Anywhere 端口的默认值。

配置 RPC 加密设置

在 RTM 版本的 Exchange 2010 中,RPC 终结点在默认情况下会进行加密。但是,Outlook 2003 不会强制实施加密的 MAPI 连接。在将组织升级到 RTM 版本的 Exchange 2010 时,由于运行 Outlook 2007 或更高版本的客户端默认情况下支持 RPC 加密,因此这些客户端将自动与对 RPC 客户端访问所做的更改兼容。Outlook 2003 不使用 RPC 加密,但是 RPC 客户端访问默认情况下需要 RPC 加密。如果您尚未禁用 RPC 加密(建议不要这样做),用户将需要配置 Outlook 2003 以进行 RPC 加密,或者您需要使用组策略来强制 Outlook 2003 使用 RPC 加密。

此问题的症状包括以下错误消息:

  • 无法启动 Microsoft Office Outlook。无法打开 Office 窗口。无法打开文件夹集。

  • 无法打开默认电子邮件文件夹。无法打开信息存储。

如果用户使用的是缓存 Exchange 模式,则 Office 不会显示错误,但会以断开模式启动。

默认情况下,Exchange 2010 Service Pack 1 (SP1) 不对 RPC 终结点进行加密。如果已在组织中完成 Exchange 2010 SP1 的安装,则 Outlook 2003 客户端将能够连接到 Exchange 服务器,而无需进行进一步配置。

有关此问题的解决方法等详细信息,请参阅 Outlook 与 Exchange 2010 邮箱由于到 RPC 加密需求的连接问题

配置 Outlook 2003 以使用 RPC 加密

若要将 Outlook 2003 配置为使用 RPC 加密,请使用以下步骤中的操作方法。

  1. 单击“工具”>“电子邮件帐户”>“查看或更改现有帐户”。

  2. 选择帐户,然后单击“其他设置”。

  3. 单击“安全性”选项卡。

  4. 选择“在 Microsoft Office Outlook 和 Microsoft Exchange Server 之间加密数据”。

  5. 单击“确定”。

配置邮箱数据库

每个邮箱数据库都包含一个 RPCClientAccessServer 值。此值在创建数据库时建立,用于确定在该邮箱服务器上具有邮箱的客户端将使用的客户端访问服务器或客户端访问阵列。此值还确定 RPC 终结点的位置。对于 Outlook 2007 和 Outlook 2010 客户端,从自动发现服务获取此值。

RPCClientAccessServer 的默认值由以下规则确定:

  • 如果您在 Active Directory 站点中配置了一个客户端访问服务器阵列,则将使用该阵列的地址。

  • 如果 Active Directory 站点中不存在阵列,并且如果您在同一个物理服务器上同时拥有客户端访问服务器角色和邮箱服务器角色,则特定邮箱服务器的 RPCClientAccessServer 属性值将与邮箱服务器相同。

  • 否则,特定邮箱服务器的 RPCClientAccessServer 属性值将设置为 Active Directory 站点中的随机客户端访问服务器。

    注释注意:
    建议您不要在同时作为域控制器的单个计算机上安装所有服务器角色。尽管支持此配置,但不建议使用它。
  • 如果在 Active Directory 站点中创建客户端访问阵列或安装客户端访问服务器之前创建了邮箱数据库,则需要重新配置 RPCClientAccessServer 属性的值。如果在创建邮箱数据库时 Active Directory 站点中不存在任何客户端访问服务器,则 RPCClientAccessServer 属性的值将设置为邮箱服务器的 FQDN。若要配置 RPCClientAccessServer 属性的值,请使用以下命令。

    Set-MailboxDatabase <name> -RPCClientAccessServer <internal_only_CAS_Array_FQDN>
    

延迟和带宽要求

对于未使用缓存 Exchange 模式运行 Outlook 的用户,客户端与服务器之间的高延迟时间会直接影响 Outlook 无法响应的频率。通常,与主邮箱服务器之间的延迟大于 200 毫秒 (ms) 就会导致客户端性能低下。

因为客户端访问服务器与邮箱之间的延迟应小于 10 毫秒,所以建议 RPCClientAccessServer 属性的值始终配置为活动邮箱数据库站点中的客户端访问阵列。

注释注意:
更改 RPCClientAccessServer 属性的值会强制所有客户端重新连接。

配置通讯簿服务

通讯簿服务通过 Microsoft.Exchange.AddressBook.Service.config 文件进行配置。使用此文件可以配置以下内容:

  • 每个用户的并发连接数(默认限制为 50)。

  • 禁用或启用日志记录。

  • 日志文件的位置、大小和保留期。

若要启用日志记录,请使用以下值:

< add key="ProtocolLoggingEnabled" value="true" />

 © 2010 Microsoft Corporation。保留所有权利。