选择协议序列
协议序列是网络操作系统用来通过网络与其他计算机通信的语言。 在更具体的术语中,RPC 应用程序必须指定表示 RPC 协议、传输协议和网络协议组合的字符串。
Microsoft RPC 支持三种 RPC 协议:
- 网络计算体系结构面向连接的协议 (NCACN)
- 网络计算体系结构数据报协议 (NCADG)
- 网络计算体系结构本地远程过程调用 (NCALRPC)
RPC 应用程序可以使用 NCALRPC 协议来调用在运行客户端程序的同一台计算机上运行的服务器程序提供的过程。 到目前为止,这是在同一台计算机上的不同进程中调用功能的最有效方法。
应用程序使用的传输和网络协议取决于网络支持的协议。 当今的许多网络(包括 Internet)都支持 TCP/IP。 其他常见的传输和网络协议包括 IPX/SPX、NetBIOS 和 AppleTalk DSP。 Microsoft RPC 支持这些协议以及其他传输和网络协议。 有关完整列表,请参阅 协议序列常量。
当应用程序使用自动绑定句柄时,它不需要指定协议序列。 如果它使用隐式或显式句柄,则必须获取或指定协议序列。 每个分布式系统都必须检查部署它的环境,以确定哪个协议序列最适合该环境。
并非所有协议序列都具有等效的功能。 开发人员应验证所选协议序列是否支持所需的功能。 一般情况下,建议使用 ncalrpc 进行本地通信和 远程通信ncacn_ip_tcp 或 ncacn_http :它们适用于所有环境,具有最佳性能,并支持所有必要的最佳做法功能。
客户端还可以指定从 Active Directory、注册表、安装程序创建和初始化的环境变量、特定于应用程序的配置文件或从程序源代码中的文本字符串获取的协议序列信息。
在客户端程序具有有效的协议序列字符串后,它可以将该信息传递给 RpcStringBindingCompose 和 RpcBindingFromStringBinding 函数,以创建绑定句柄。