zoukankan      html  css  js  c++  java
  • Remoting配置记录

    1.适用范围:
    .Net平台下服务器数据通信,支持多信道如:http,tcp,icp,自定义信道
    http:默认情况下80端口未被防火墙通过。
    tcp:必须配置防火墙,在内部网中使用更加有效。
    IPc:最适合在单个系统上进行跨进程的通信,使用WINDOWS跨进程通信机制,速度最快。

    2.简单Remoting服务器配置
    TcpServerChannel tcp =new TcpServerChannel(8086);;
    HttpServerChannel Http=new HttpServerChannel(8087) ;
    IpcServerChannel Ipc =new IpcServerChannel("icpServer");
    ChannelServices.RegisterChannel(tcp, false);
    ChannelServices.RegisterChannel(Http, false);
    ChannelServices.RegisterChannel(Ipc, false);
    //注:rc.Hello为一个类型:加上[Serializable] 并继承MarshalByRefObjectSingleCall:不保存客户对象,使用完即删除
    Singleton:服务器的所有客户共享对象
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(rc.Hello), "hi", WellKnownObjectMode.SingleCall);

    3.客户端调用
    ChannelServices.RegisterChannel(new TcpClientChannel(), false);
    rc.Hello hello = (rc.Hello)RemotingServices.Connect(typeof(rc.Hello), "tcp://192.168.1.12:8086/hi");


    4.使用配置文件配置 remoting.config
    rc.Hello表示类名,rc表示引用的dll名称
    一。已知对象服务器端
    1)

    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Hello">
          
    <service>
            
    <wellknown mode="SingleCall" type="rc.Hello,rc" objectUri="hi">          
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="tcp" port="8086" displayName="Tcp通道"></channel>
            
    <channel ref="http" port="8087" displayName="http通道"></channel>
            
    <channel ref="ipc" portName="8086" displayName="ipc通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    将上述文件保存为remoting.config
    服务器端执行
    RemotingConfiguration.Configure("Remoting.config"文件路径,false);

    2)已知对象客户端

    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Client">
          
    <service>
            
    <client displayName="Hello client">
            
    <wellknown type="rc.Hello,rc" url="tcp://192.168.1.12:8086/hi" />
                
    </client>
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="tcp" displayName="Tcp通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    客户端执行
    RemotingConfiguration.Configure("Remoting.config"文件路径,false);
    二。客户激活的对象的服务器配置
    1)服务器端

    代码
    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Hello">
          
    <service>
          
    <activated type="rc.Hello,rc" />
          
    </service>
          
    <channels>
            
    <channel ref="tcp" port="8086" displayName="Tcp通道"></channel>
            
    <channel ref="http" port="8087" displayName="http通道"></channel>
            
    <channel ref="ipc" portName="8086" displayName="ipc通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>

    2)客户端

    代码
    <configuration>
      
    <system.runtime.remoting>
        
    <application name="Client">
          
    <service>
            
    <client displayName="Hello client" url="http://192.168.1.12:8087/hi">
                
    </client>
            
    </wellknown>
          
    </service>
          
    <channels>
            
    <channel ref="http" displayName="http通道"></channel>
          
    </channels>
        
    </application>
      
    </system.runtime.remoting>
    </configuration>


  • 相关阅读:
    微信支付Native扫码支付模式二之CodeIgniter集成篇
    如何使用硬盘安装debian8.3?
    使用git将代码push到osc上
    树莓派(Raspberry Pi)搭建简单的lamp服务
    win下修改mysql默认的字符集以防止乱码出现
    CodeIgniter2.2.0-在控制器里调用load失败报错的问题
    Ubuntu Server(Ubuntu 14.04 LTS 64位)安装libgdiplus2.10.9出错问题记录
    linux下mono的安装与卸载
    asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
    使用NPOI将数据导出为word格式里的table
  • 原文地址:https://www.cnblogs.com/qingyi/p/1651418.html
Copyright © 2011-2022 走看看