IIS部署Remoting總結
1.在IIS里新建一個網站,命名為test,路徑指向 e:\test;
2.在 e:\test下創建目錄bin;
3.把Remoting遠程對象的Project設置為類庫,編譯為DLL文件,然后復制到e:\test\bin;
4.如果IIS是64位平臺,而DLL是x86平臺,需要修改IIS的應用程序池為x86平臺:
1)選擇IIS的“應用程序池”,選中test;
2)選擇“高級設置”;
3)設置”啟用32位應用程序“為true;
4)修改.Net Framework版本為v4.0
注意.Net Framework的版本,應用程序池一定要與類庫的版本一致,否則會報告“輸入流是無效的二進制格式”錯誤。
5.在e:\test下創建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“的錯誤。

浙公網安備 33010602011771號