生成宿主应用程序
如何:生成可远程处理的类型主题中定义的 RemotableType
类本身并不特殊。要使其他应用程序域中的对象能够在远程创建该对象的实例,必须生成宿主或侦听器应用程序,以完成以下两项任务:
选择并注册一个信道,该信道是为您处理网络协议和序列化格式的对象。
将您的类型注册到 .NET 远程处理系统,使它可以使用信道来侦听对类型的请求。
.NET Framework 包括两个默认的信道:HttpChannel(它使用 SOAP 格式化)和 TcpChannel(它使用二进制格式化)。开始时最好使用 HttpChannel 信道,因为在某些方案中可以通过防火墙使用该信道而不必打开端口,而且该信道支持标准的安全和身份验证协议。有关选择适合您的方案的信道的更多信息,请参见信道。
您可以使用任何类型的应用程序域来生成侦听器应用程序,这些应用程序域包括:Windows 窗体应用程序、ASP.NET Web 应用程序、控制台应用程序、Windows 服务(也称作 Windows NT 服务)或其他任何托管应用程序域。由于远程配置是基于每个应用程序域进行的,因此应用程序域必须处于运行状态才能侦听请求。
备注
与 COM 不同,远程处理不会为您启动宿主或服务器应用程序。这是 COM 中的 .NET 远程处理和远程激活之间的重要区别。
配置可以通过编程方式(或者使用应用程序或计算机配置文件)来进行。
远程处理系统使用该文件中的信息来侦听远程请求,并且将远程请求路由到可远程处理类型的实例。该文件指定 Singleton 服务器激活模式、为其侦听的类型的类型名称和程序集,以及对象的统一资源标识符 (URI) 或外部名称。(有关对象 URI 和远程处理的更多详细信息,请参见激活 URL。)该文件还指示远程处理系统使用系统提供的 HttpChannel 来侦听端口 8989 上的请求。
备注
虽然前面的配置文件中只有几项设置,但在使用 .NET 远程处理时遇到的大多数问题都与这几项配置有关,原因或者是其中的某些设置不正确,或者是与客户端应用程序的配置设置不匹配。很容易输入错误的名称、忘记端口或者忽略属性。如果您的远程处理应用程序有问题,请首先检查配置设置。
请参见
任务
参考
远程处理设置架构
WellKnownObjectMode.Singleton