配置计算机以通过 HTTP 进行 RPC

若要使用 HTTP 作为 RPC 的传输协议,必须在服务器程序的网络上配置在 Internet 信息服务器 (IIS) 中运行的 RPC 代理。 本部分介绍配置选项。 有关使用 RPC over HTTP 时的最佳编程和配置做法的建议,请参阅 RPC over HTTP 部署建议。 主要任务是配置 RPC 代理,以接受 RPC OVER HTTP 连接并将其转发到 RPC over HTTP 服务器程序。

必须先在运行 RPC 代理的计算机上安装 IIS。 安装 IIS 后,将安装 RPC 代理。 IIS 和 RPC 代理可以从控制面板添加/删除 Windows 组件同时安装。 RPC 代理从 网络服务安装,在 Windows 安装程序中称为 RPC over HTTP Proxy 。 如果同时安装 IIS 和 RPC 代理,Windows 可确保按正确的顺序安装它们。

注意

安装完成后,如果 IIS 在安装过程中正在运行,则必须重新启动 IIS。

 

安装 RPC 代理后,必须执行一些其他配置任务:

  1. 打开 IIS MMC 管理单元,将 RPC 代理虚拟目录配置为要求安全性,如 RPC over HTTP Security 中所述。 仅当计划通过 HTTP v2 使用 RPC 时,才需要执行此步骤。
  2. 如果 IIS 未安装证书,则必须为该计算机获取并安装有效的证书,以便在与 RPC 代理通信时使用 SSL。 此步骤仅适用于通过 HTTP v2 的 RPC。 由于 RPC over HTTP v1 不支持 SSL,因此对于 HTTP v1 上的 RPC,可以省略此步骤。
  3. 按照 RPC over HTTP Security 中所述设置 ValidPorts 密钥。

完成这些配置任务后,RPC over HTTP 代理已准备好将请求从 RPC over HTTP 客户端转发到 RPC over HTTP 服务器。

通过 HTTP 注册表项进行 RPC

本部分介绍用于通过 HTTP 连接在 RPC 中配置客户端、服务器或 RPC 代理的其他注册表项。 通常不需要这些密钥:此处提供它们是为了完整性。

HKLM\Software\Microsoft\Rpc\DefaultChannelLifetime

DWORD。 替代默认通道生存期。 在客户端和 RPC 代理上使用。 通道生存期以字节表示。 如果未指定,则使用 1GB。 仅在 RPC over HTTP v2 中使用。 在 RPC 代理上更改时,必须重启 IIS 才能使更改生效。

-

HKLM\Software\Microsoft\Rpc\ClientReceiveWindow

DWORD。 如果存在,则指定客户端用于从 RPC 代理接收的数据的接收窗口。 最小有效值为 8K。 最大值为 1GB。 如果值不存在,则使用 64K。 仅在 RPC over HTTP v2 中使用。

-

HKLM\Software\Microsoft\Rpc\InProxyReceiveWindow

DWORD。 如果存在,则指定 RPC 代理用于从客户端接收的数据的接收窗口。 最小有效值为 8K。 最大值为 1GB。 如果值不存在,则使用 64K。 仅在 RPC over HTTP v2 中使用。 对此值进行更改时,必须重启 IIS 才能使更改生效。

-

HKLM\Software\Microsoft\Rpc\OutProxyReceiveWindow

DWORD。 如果存在,则指定 RPC 代理用于从服务器接收的数据的接收窗口。 最小有效值为 8K。 最大值为 1GB。 如果值不存在,则使用 64K。 仅在 RPC over HTTP v2 中使用。 对此值进行更改时,必须重启 IIS 才能使更改生效。

-

HKLM\Software\Microsoft\Rpc\ServerReceiveWindow

DWORD。 如果存在,则指定服务器用于从 RPC 代理接收的数据的接收窗口。 最小有效值为 8K。 最大值为 1GB。 如果值不存在,则使用 64K。 仅在 RPC over HTTP v2 中使用。 对此值进行更改时,必须重启 IIS 才能使更改生效。

-

HKLM\Software\Policies\Microsoft\Windows NT\Rpc\MinimumConnectionTimeout

DWORD。 如果存在,则指定客户端和 RPC 代理使用的最小连接超时(以秒为单位)。 使用的实际超时值是此值的较低值和 IIS 空闲连接超时。 如果零或密钥不存在,则使用 IIS 空闲连接超时。 仅在 RPC over HTTP v2 中使用。 在 RPC 代理上对此值进行更改时,必须重启 IIS 才能使更改生效。

-

HKLM\Software\Microsoft\Rpc\UseProxyForIPAddrIfRDNSFails

如果存在并设置为非零,并且数字 IP 地址作为 RPC 代理地址提供,则基于 HTTP 客户端的 RPC 将尝试反向名称解析,如果失败,将尝试通过 HTTP 代理连接到 RPC 代理。 可用于在需要此类行为的安装上模拟Windows NT行为。 对于 HTTP v2 的 RPC 忽略。 仅在使用 RPC over HTTP v1 时才使用。 仅在具有 Service Pack 3 (SP3) 及更高版本的 Windows 2000 上受支持。

-

HKLM\Software\Microsoft\Rpc\RpcProxy\AllowAnonymous

DWORD。 当不存在或设置为零时,RPC 代理会检查连接是否已经过身份验证,以及它是否 (SSL 或其他形式的加密) 使用。 如果任一为 false,则拒绝连接。 如果此值包含非零,则允许匿名和非加密连接。 此设置是对任何虚拟目录设置的补充。 例如,如果在虚拟目录级别禁用匿名访问,但 AllowAnonymous 为非零,则仍会在 IIS 级别阻止匿名访问。 仅在 RPC over HTTP v2 中使用 RPC 代理。 在 RPC 代理上对此值进行更改时,必须重启 IIS 才能使更改生效。

警告

出于安全考虑,Microsoft 强烈建议在生产系统上设置 AllowAnonymous 值。 应设置此密钥的唯一原因是在没有外部访问的封闭网络上进行测试。 连接到 Internet 并运行 RPC 代理且 将 AllowAnonymous 密钥设置为非零值的任何系统都可能容易受到攻击。