一箭工作室

大家一起来学软件开发

博客园 首页 新随笔 联系 订阅 管理
.Net Remoting的宿主程序可以是Windows ApplicationConsole ApplicationWindows ServiceIIS.在大多数情况下:宿主程序一般会采用Windows ApplicationIIS.

对于Windows Service作为宿主和其它应用部署没有多大区别。在强大的Visual Studio 2005强大的IDE工具的帮助下,使得非常容易。

选择IIS的理由是我们能使用集成验证等一些iis的特性。下面将重点介绍基于IIS的部署步骤。

1、 创建一个Web Application,删除所有Web Form

2、 添加Remote Object对象的程序集引用。

3、 填写配置信息,注意:协议必须为HTTP,不必设置端口。因为IIS的默认端口就是80商品。

客户端的配置文件中的URI为:http://ip地址/虚拟目录/远程对象.soap

4、 网络中传输的是序列化的远程流。由于安全问题,操作系统对序列化时分为两种,分别为LowFullLow(默认值)防止反序列化攻击的方式是,在反序列化时,只处理与最基本的远程处理功能关联的类型,如自动反序列化远程处理基础结构类型、有限的系统实现类型集和基本的自定义类型集。Full 反序列化级别支持远程处理在所有情况下支持的所有自动反序列化类型。下面是修改的配置文件的事例:

<serverProviders>

<provider ref="wsdl" />

<formatter ref="soap" typeFilterLevel="Full" />

<formatter ref="binary" typeFilterLevel="Full" />

</serverProviders>

 

下面是各种通道和部署方式的选择:

Ø         若要对客户端进行身份验证,请使用HTTP通道,在ASP.NET中驻留对象,以及在IIS中禁用匿名访问。

Ø         如果您不担心客户端身份验证问题,请使用TCP通道,它可以提供更高的性能。

Ø         如果您使用TCP通道,请使用IPSec保护客户端和服务器之间的通信通道。使用 SSL来保护HTTP通道。

Ø         如果您需要对远程资源进行受信任的调用,请将组件驻留在Windows服务中,而不是驻留在控制台应用程序中。

Ø         始终不要向Internet公开远程对象。在这种情况下,请使用 Web 服务。

Ø         应该仅在Intranet中使用.NET Remoting。应该使用内部方式从Web 应用程序访问对象。即使对象驻留在 ASP.NET 中,也不要向 Internet 客户端公开它们,因为客户端必须是.NET 客户端。

posted on 2007-02-11 13:38  一箭  阅读(263)  评论(0)    收藏  举报