基本远程处理任务列表

本主题介绍一项传统技术,保留该技术是为了向后兼容现有的应用程序,不建议对新的开发使用该技术。现在应该使用  Windows Communication Foundation (WCF) 来开发分布式应用程序。

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

可远程处理的类型任务

定义可远程处理的类型。可远程处理的类型必须派生自 MarshalByRefObject。客户端应用程序和服务器应用程序都必须引用包含可远程处理类型的程序集。如果您不希望客户端应用程序引用实现程序集,可以使用 Soapsuds.exe 工具生成一个存根 (stub) 程序集,然后用客户端应用程序来引用该存根 (stub) 程序集。另外,您也可以在共享程序集中定义一个接口,接着对远程对象实现该接口,然后在客户端应用程序中引用该共享程序集。此方法的唯一缺点在于,在使用配置文件配置客户端时,将无法使用 new 运算符实例化远程对象。必须调用 GetObject 才能实例化远程对象。

宿主任务

发布可在应用程序域之外使用的任何远程对象

  1. 设计服务:

    1. 选择宿主应用程序类型,请参见如何:生成宿主应用程序

    2. 选择激活模式。有关更多信息,请参见 激活远程对象.

    3. 选择信道和端口。有关更多信息,请参见 选择信道.

  2. 实现宿主应用程序。远程处理宿主可以是 Windows 服务、控制台应用程序、Windows 窗体应用程序、Internet 信息服务 (IIS) 进程或 ASP.NET 应用程序。由于每种应用程序的要求不尽相同,因此需要阅读相关文档来了解如何生成要使用的类型的应用程序。在宿主中,应配置远程处理系统的激活模式和其他信息,例如应用程序名称和对象 URI。如果要以编程方式配置系统,则不需要使用配置文件。如果要使用配置文件,则必须通过调用 RemotingConfiguration.Configure 将该文件加载到系统中。

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

  4. 宿主必须引用远程对象的程序集。

客户端任务

访问可在应用程序域之外使用的任何服务

  1. 设计客户端:

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

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

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

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

  2. 实现客户端应用程序。远程处理宿主可以是 Windows 服务、控制台应用程序、Windows 窗体应用程序、Internet 信息服务 (IIS) 进程或 ASP.NET 应用程序。由于每种应用程序的要求不尽相同,因此需要阅读相关文档来了解如何生成要使用的类型的应用程序。

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

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

  5. 实例化并调用远程对象。如果该对象是用配置文件配置的,则可以使用 new 运算符。如果该对象是以编程方式配置的,则可以调用 GetObject

另请参见

概念

在 .NET 中选择通信选项

其他资源

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