最近用.net remoting技术做了一个程序,用来监控一个生产线的生产情况。生产线的采集数据由控制系统通过接口表的方式写入我们的数据库,然后我用触发器驱动我的逻辑,Remoting服务器宿主用的Windows服务,但是现在有一个很棘手的问题,就是如果生产线停产超过1个小时,也就是windows服务和客户端一个小时没有通信的话,连接就会出现基础连接被关闭的错误,请大侠们给个思路。

解决方案 »

  1.   

    不知道你是用哪种类型的Remoting(singleton, SAO, CAO)
    Remoting服务类重写InitializeLifetimeService,使之永远不过期。
    这个对于Singleton比较合适,其他的有点浪费资源。public override object InitializeLifetimeService()
    {
        return null;
    }当然还可以让Client定时访问下Server,报告自己还活着。这个也比较常用。
      

  2.   

    关于Remoting的生存周期,推荐你看看这篇文章:Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务