初学.Net Remoting
Remoting中,一个客户端预定了服务器激活的Singleton对象的事件,如果客户端是异常退出(比如网络断线,系统死机,系统断电等),如何踢掉这个预定?如果不踢掉这个预定的话,其他客户端执行了可能引发这个事件的操作会变得非常非常慢,另外不知道用这种客户端预定服务器激活对象事件的处理方式去解决一些问题好不好.

解决方案 »

  1.   

    我是这样一个想法(目前构思阶段)
    每发生一处业务,需要打印三种票据(还有一种需要手写,不算在内),但并不是所有客户都需要打印三种
    四种票据为普通收据,国税专用发票,地税专用发票,行政事业收据(第四种不打印,手写)
    其中四种中,普通收据,一定要打,其他两种打印票据,根据用户是否需要打来确定
    由于日常业务处理时业务量太大,所以是用每台工作站同时连接3台打印,用送纸链送纸的方式处理的
    由于国地税发票需要打的用户对每个柜员来说并不多,而且一台PC连接三台打印机(串口一台,USB两台)出错的情况太多(创建打印环境失败,我过去用单机打印时很少遇到的问题,但连接多台时,就成了家常便饭了,不过我用检测失败后立即重建的方式处理了)
    毕竟每台工作站处理业务时,只有大约10%需要打印二税发票,所以,我们准备把打印二税发票的工作放到两个公共打印机上去操作,然后客户机去操纵这个专门打印二税发票的服务器,但由于队列中可能是N个不同的操作员下达的,所以,想在完成打印后,能通知操作员,让她能够知道,已打印出她需要的票据,然后从打印机上扯下票据,递与客户.
    后来我发现这个问题用Remoting的事件机制很容易解决,但在构思和试行时出现一个有工作站突然异常掉线后,整个运行速度突然变慢的问题很麻烦,而且掉线的越多,速度越慢,原因我想到了,就是服务器端调用了已不存在的客户端回调函数的原因.但想踢掉这个委托,没办法了(别的都能踢,就这个委托踢不掉)