none
remotin provider压缩的问题 RRS feed

  • 问题

  • 测试代码

    http://www.soft000.com/down/compressskin.rar

    这个remotin用了SinkProvider来压缩压

    配置文件里的配置

    <clientProviders>
              <formatter ref="binary" />
             <provider type="CompressionSink.CompressionClientSinkProvider, CompressionSink" />
    </clientProviders>

    在实际应用中,客户端要先调用一个没有压缩的服务,这个是公共的服务.然后再调用本系统的服务,本系统的服务是压缩的.

    SomeSAO unCompressobj = (SomeSAO)Activator.GetObject(typeof(SomeSAO), "http://localhost/testUncompress/SomeSAO.rem");
                Console.WriteLine(unCompressobj.doSomething("未压缩方法"));

                String filename = "client.exe.config";

                RemotingConfiguration.Configure(filename);

                SomeSAO obj = (SomeSAO)Activator.GetObject(typeof(SomeSAO), "http://localhost/testCompress/SomeSAO.rem");
                String res = obj.doSomething("Zendy");
           
                Console.WriteLine("Got result: {0}",res);
                Console.ReadLine();

    如果选先调用未压缩的服务,再调用压缩的服务,就会出错.

    为什么?有什么解决办法?


    2010年8月9日 9:48

答案

  • static void ClearChannel()
            {
                IChannel[] channels = ChannelServices.RegisteredChannels;
                foreach (IChannel eachChannel in channels)
                {

                    HttpClientChannel httpChannel = (HttpClientChannel)eachChannel;
                        //注销通道;
                        ChannelServices.UnregisterChannel(httpChannel);
                }

            }
    调用压缩的之前先注销掉原来的通道

    • 已标记为答案 male110 2010年8月10日 3:48
    2010年8月10日 3:48