解決不能被還原序列化的辦法

來源:互聯網
上載者:User
  在學習Remoting技術時遇到一個問題:不允許類型 System.DelegateSerializationHolder 和從中派生的類型(例如 System.DelegateSerializationHolder)在此安全層級上被還原序列化。後來經過多方面尋找資料原來是在.NET Framework 1.1中安全層級預設是Low的,所以不能被還原序列化。以下代碼是是一個聊天程式(一個樣本程式來自《MCAD/MCSD制勝寶典——用Visul Basic.NET和Visual C#.NET開發XML Web服務與伺服器組件(考試70-310和70-320)》一書),在分別修改了用戶端與伺服器端設定檔後,用RemotingConfiguration.Configure讀取設定檔並配置遠端結構就可以訪問了。

伺服器端設定檔:Central.config
<configuration>

  <system.runtime.remoting>

    <application>

      <service>

        <wellknown mode="Singleton" type="ChatCoordinator, ChatCoordinator" objectUri="Chat" />

      </service>

      <channels>

        <channel ref="http" port="8080">

          <!--

              以下部分是控制按層級的

              Full: .NET 遠端的完全還原序列化層級。它在所有情況下都支援遠端所支援的全部類型。

              Low: .NET 遠端的低還原序列化層級。它支援與基本的遠端功能相關聯的類型。 

   -->

          <serverProviders>

            <provider ref="wsdl" />

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

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

          </serverProviders>

        </channel>

      </channels>

    </application>

  </system.runtime.remoting>

</configuration>

用戶端設定檔:Client.config
<configuration>

  <system.runtime.remoting>

    <application>

      <client>

        <wellknown type="ChatCoordinator, ChatCoordinator" url="http://localhost:8080/Chat" />

      </client>

      <channels>

        <channel ref="http" port="0">

          <!--以下部分是控制按層級的-->

          <serverProviders>

            <provider ref="wsdl" />

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

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

          </serverProviders>

        </channel>

      </channels>

    </application>

  </system.runtime.remoting>

</configuration>

代碼就不贅述了,自己下載看吧!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.