IIS部署Remoting總結

szjay發表於2015-09-16

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“的錯誤。

相關文章