将 RPC 与 Winsock 代理配合使用

Microsoft Internet Access Server 的发布包括 Winsock 代理,这是 Windows 套接字 API 版本 1.1 的增强版本。 Winsock 代理允许在专用网络客户端上运行的 Windows 套接字应用程序的行为就像直接连接到远程 Internet 服务器应用程序一样。 Microsoft 代理服务器充当此连接的主机。 这意味着所有应用程序级通信都通过单个安全计算机(运行 Microsoft 代理服务器的网关计算机)进行传输。

通常,对于数据报数据包传输,RPC 传输 DLL 绕过 Wsock32.dll 中提供的 sendtorecvfrom 函数,并直接与基础设备驱动程序通信。 这提高了数据包传输的速度,但使 Winsock 代理功能对应用程序不可用。

每个网络协议提供程序都具有关联的 GUID。 RPC 运行时库将 UDP 和 IPX GUID 与已知的 Microsoft 标识符进行比较。 如果不匹配,RPC 会自动使用 Winsock。

Winsock 代理的另一个功能是,当 SPX 客户端计算机未安装 TCP 时,它能够通过 Novell SPX 传输模拟 TCP 传输协议。 若要将此功能用于 RPC 应用程序,请编辑每台客户端计算机上的系统注册表以添加此项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\ClientProtocols
   ncacn_ip_tcp = "rpcltccm.dll"<dl>
<dt>

   Data type
</dt>
<dd>   REG_SZ</dd>
</dl>
   ncadg_ip_udp = "rpcltccm.dll"<dl>
<dt>

   Data type
</dt>
<dd>   REG_SZ</dd>
</dl>

编辑每台服务器计算机上的注册表以添加此项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\ServerProtocols
   ncacn_ip_tcp = "rpcltscm.dll"<dl>
<dt>

   Data type
</dt>
<dd>   REG_SZ</dd>
</dl>
   ncadg_ip_udp = "rpcltscm.dll"<dl>
<dt>

   Data type
</dt>
<dd>   REG_SZ</dd>
</dl>

有关 RPC 传输协议的详细信息,请参阅 指定协议序列。 有关 Winsock 代理的详细信息,请参阅 Microsoft Internet Access Server 的产品文档。

Windows 2000 不实现 ClientProtocolsServerProtocols 注册表项。 Microsoft 提供所有众所周知的传输作为运行时库的一部分。 因此,这些条目不是必需的。