基本远程处理任务列表

.NET 远程处理是使用 .NET Framework 在应用程序域之间建立通信的几种方式之一。您必须确定应用程序需要哪些功能,并且在为分布式应用程序选择特定开发模型之前考虑可用的资源。有关指导,请参见选择 .NET 中的通信选项。下面的基本任务列表描述了生成基本 .NET 远程处理应用程序所需的基本步骤。

宿主任务

下面是发布从应用程序域之外使用的任何服务所需的步骤。

  1. 设计服务。

    1. 选择宿主应用程序域。

    2. 选择激活模型。

    3. 选择信道和端口。

    4. 决定客户端获取服务的元数据的方式。

  2. 实现宿主应用程序域。远程处理宿主可以是 Windows 服务、控制台应用程序、Windows 窗体应用程序、Internet 信息服务 (IIS) 进程或 ASP.NET 应用程序。每种应用程序的要求各不相同,因此您应该阅读描述如何生成要使用的应用程序类型的文档。有关更多信息,请参见 基于 Windows 的应用程序.NET Framework 中的 ASP.NET Web 应用程序。在宿主中,配置远程处理系统的激活模式和其他信息(如应用程序名和终结点)。如果要以编程方式配置该系统,则无需使用配置文件。如果使用配置文件,则必须通过调用 RemotingConfiguration.Configure将该文件加载到系统中。

  3. 在宿主中,创建适当的信道并通过调用 ChannelServices.RegisterChannel 将其注册到系统。如果使用配置文件,则必须通过调用 RemotingConfiguration.Configure将该文件加载到系统中。

  4. 若没有已发布的类,则宿主无法运行,但使用服务的实现生成宿主环境的方法取决于共享服务的公共接口的方式。

    如果要实现 XML Web 服务(使用具有默认 SOAP 序列化的 HttpChannel),则客户端可以通过三种方式获取信息:

    • 使用 Soapsuds 工具 (Soapsuds.exe) 从终结点提取信息。

    • 下载包含元数据的程序集。

    • 下载接口的源代码。

      备注

      在两种情况下可以使用源代码。使用服务器激活时,仅当将实现、抽象类或者接口的源代码编译为与服务器上的实际实现同名的程序集时,才可使用这些源代码。(类型标识基于类型名称和程序集名称两者。)当使用客户端激活时,必须生成一个表面上与实际服务器实现相同的类。具体而言,客户端类必须位于同名的程序集中,具有相同的类声明,并且其成员的签名必须与服务器上的相同。临时代理客户端类的实现无关紧要;如果元数据匹配,将调用远程服务器。Soapsuds.exe 为客户端生成一个临时代理类以使您不必完成此项工作。

    如果要实现其他类型的服务(例如使用 TcpChannel 对象),则客户端可以通过两种方式获取该信息:

    • 下载包含元数据的程序集。

    • 下载接口的源代码。

      备注

      在两种情况下可以使用源代码。使用服务器激活时,仅当将实现、抽象类或者接口的源代码编译为与服务器上的实际实现同名的程序集时,才可使用这些源代码(包括任何版本控制信息)。(类型标识基于类型名称和程序集名称信息两者。)当使用客户端激活时,必须生成一个表面上与实际服务器实现相同的类。具体而言,客户端类必须位于同名的程序集中,具有相同的类声明,并且其成员的签名必须与服务器上的相同。临时代理客户端类的实现无关紧要;如果元数据匹配,将调用远程服务器。

    无论在哪种情况下,在您自己的宿主应用程序域中对服务进行打包的方式都取决于发布其他人使用此服务所需的元数据的方式。

客户端任务

下面是使用供从应用程序域以外使用的任何服务所需的基本步骤。

  1. 设计客户端。

    1. 选择客户端应用程序域。

    2. 确定激活模式以及客户端激活 URL 或远程类型的已知对象 URL。

    3. 考虑是否需要注册信道和端口。

    4. 获取远程类型的元数据。

  2. 实现客户端应用程序域。远程处理宿主可以是 Windows 服务、控制台应用程序、Windows 窗体应用程序、Internet 信息服务 (IIS) 进程或 ASP.NET 应用程序。每种应用程序的要求各不相同,因此您应该阅读描述如何生成要使用的应用程序类型的文档。有关更多信息,请参见 Windows 应用程序.NET Framework 中的 ASP.NET Web 应用程序

  3. 用激活模式和其他类型信息(如应用程序名和对象统一资源标识符 (URI))配置客户端远程处理系统。如果要以编程方式配置该系统,则无需使用配置文件。如果使用配置文件,则必须通过调用 RemotingConfiguration.Configure将该文件加载到系统中。

  4. 创建适当的信道并通过调用 ChannelServices.RegisterChannel 将该信道注册到系统。如果使用配置文件,则必须通过调用 RemotingConfiguration.Configure 将该文件加载到系统中。

请参见

概念

选择 .NET 中的通信选项

其他资源

生成基本的 .NET Framework 远程处理应用程序
.NET Framework 远程处理概述
远程处理示例