1.在IIS里新建一个网站,命名为test,路径指向 e: est;
2.在 e: est下创建目录bin;
3.把Remoting远程对象的Project设置为类库,编译为DLL文件,然后复制到e: estin;
4.如果IIS是64位平台,而DLL是x86平台,需要修改IIS的应用程序池为x86平台:
1)选择IIS的“应用程序池”,选中test;
2)选择“高级设置”;
3)设置”启用32位应用程序“为true;
4)修改.Net Framework版本为v4.0
注意.Net Framework的版本,应用程序池一定要与类库的版本一致,否则会报告“输入流是无效的二进制格式”错误。
5.在e: est下创建web.config文件,并配置remoting参数。
1)在web.xml里注册远程对象。如果没有注册远程对象就调用它,Remoting会报告错误“输入流是无效的二进制格式。开始内容(以字节为单位)是:“。
<wellknown type="Framework.HandlerBase.SessionHandler,Framework.HandlerBase" objectUri="SessionHandler.soap" mode="SingleCall" />
2)在web.xml里注册自定义的SinkProvider。
<provider type="Framework.Server.ChannelSinkProvider, Framework.Server"/>
3)配置formatter,指定使用二进制序列化。Remoting对soap默认使用XML序列化,但XML序列化不支持泛型,因此必须使用二进制序列化。
<formatter ref="binary" typeFilterLevel="Full" />
6.客户端的TcpChannel改为HttpChannel,否则会报告“System.ArgumentNullException ... DispatchChannelSink ... requestMsg“的错误。