其实感觉Remoting若基于IIS为宿主,只能使用HTTP作为传输协议,并默认端口80(若更改IIS默认端口后,不知道Remting的端口是随之改变还是需要手动设置)
首先,在IIS上新建一个Web应用程序,假定虚拟目录名为Remoting.(当然用VS建立一个Web应用程序项目是最方便的方式),并把WebForm1删除,然后修改Web.Config的内容
给出一个最简单的配置例子:
<system.runtime.remoting>
<application>
<service>
<wellknown type="EntityBeanLibray.NorthWood, EntityBeanLibray" objectUri="EntityBean.soap" mode="Singleton" />
</service>
<channels>
<channel ref="http"/>
</channels>
</application>
</system.runtime.remoting>
1、可能大家还不是很理解type属性,其实type属性分两部分<命名空间.类名>,<程序集>
2、objectUri是用来表示对象的uri的,到时候我们用这个uri来连接到服务端
3、我们需要为Uri指定soap(soap格式化)或者rem(二进制格式化)后缀
4、指名通道使用Http协议
我们在浏览器输入:http://localhost/remoting/EntityBean.soap?wsdl进行测试。
IIS的部署也是自动启动服务的,还有一个优点就是可以结合IIS的windows身份认证对Remoting进行访问控制。但是感觉上使用Http协议比TCP方式效率要低很多,甚至比WebService效率还低。这种情况下Remoting比WebService的唯一优势就是远程对象能够拥有状态信息。当然这种传输方式若用数据压缩的话,收益也会更大。