一直以来,开发和测试分布式组件不仅项目开销大,而且很令开发人员头疼。以下指导原则是在实践中摸索得到的,来之不易。下面简单介绍一下要执行的步骤:
主机任务
设计服务,选择应用程序域、激活模式、通道、端口和发布。
实现 Remoting 主机应用程序域(例如 IIS/系统服务)。
配置主机激活、通道和协议设置。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。
发布接口,供客户端使用(有关详细信息,请参阅下文中的“接口发布选择”)。
客户端任务
设计客户端,选择应用程序域和激活模式。
考虑是否需要注册通道和端口。
获取远程类型元数据。
实现客户端应用程序域。
配置客户端激活模式和其他类型的信息,如应用程序名称、通道和对象 URI 等。建议使用配置文件,可以通过调用 RemotingConfiguration.Configure 加载。
格式化选择
作为标准,Remoting 可以配置为在 HTTP 通道上使用 SOAP 或二进制格式化程序,或者在 TCP 通道上使用二进制格式化程序。一般情况下,在客户端配置文件中输入适当的条目和调用静态的 RemotingConfiguration.Configure 方法都可以实现这种配置。
例如,要将 Remoting 连接配置为使用 HTTP 上的二进制格式化程序,可以按以下方法完成配置条目:
| <channel ref="http" useDefaultCredentials="true" port="0"> <clientProviders> <formatter ref="binary"/> </clientProviders> </channel> |
这里的“channel ref”指 HTTP 协议,“formatter ref”指要在通道上发送的消息格式,在此示例中为二进制。
遗憾的是,在开发过程中将二进制格式化程序用于 HTTP 通道,会产生屏蔽服务器端错误的副作用,例如,一般的服务器错误或访问冲突都会误报给客户端。这是因为使用二进制格式化程序时,客户端的 Remoting 组件需要以二进制格式返回消息,它无法正确解释纯文本的错误结果,并报告以下错误:
mscorlib.dll 中出现无法处理的异常类型 System.Runtime.Serialization. SerializationException。其他信息:BinaryFormatter 版本不兼容。需要使用 1.0 版。收到的版本为 1008738336.1684104552。
这种错误大部分“不是”因为版本不兼容,而是因为客户端无法分析文本格式的错误响应。虽然我们相信这种协议缺陷能够在产品的未来版本中得到解决,但还是强烈建议您在开发过程中使用 SOAP 格式化程序。证实之后,可以将此格式化程序切换为二进制以增强性能,但应该在性能优势充分且必要的情况下才这样做。
相关专题
- .NET移动与嵌入式技术 (5950篇文章)
- .NET开发手册 (5652篇文章)
- vb.net入门——ToolBar 控件的使用 (267次浏览)
- vb.net入门——OpenFileDialog 组件的使用 (75次浏览)
- vb.net入门——FontDialog 组件的使用 (52次浏览)
- vb.net用Graphics画一个五角星 (46次浏览)
- vb.net入门——FolderBrowserDialog 组件的使 (45次浏览)
- vb.net绘制干扰点 (44次浏览)
- vb.net入门——ColorDialog 组件的使用 (41次浏览)
- vb.net巧用ToolTip控件获取鼠标坐标 (39次浏览)
- 用vb.net创建一个鼠标绘图程序 (39次浏览)
- vb.net入门——SaveFileDialog 组件的使用 (38次浏览)



