我想用wcf来实现数据同步(外网),给点建议撒,谢谢拉

解决方案 »

  1.   

    俺是这样想的,用两个wcf服务进行数据传递,先单向说,客户端服务器(以下简称客服)向总服务器(以下简称总服)发送更新数据信息(xml格式的)
    数据库中创建数据操作表(记录对数据库的操作,其中包含数据操作的表名、操作、数据(xml)等信息)和数据表(用来存放发送过来的数据信息),
    客服发送数据:监听数据操作表的变化,如有新数据则就将数据发送到总服去,发送到总服的数据保存在数据库中;
    总服接受并执行数据:监听数据表的变化,如有新数据则就根据数据信息执行数据库操作;
    实现:
    1>客服监听用timer来实现
    2>总服:接受和执行分别用两个线程控制,线程中用while(true)死循环
    不知道监听还有没有好的办法撒,请指教。
      

  2.   

    你用的是什么数据库?如果是SQL server ,它本身就自带这些功能
      

  3.   

    如果你用WCF,就根本不需要去监听,ServiceHost会帮你做这部分工作。
    你所要做的就是,在服务器端(总服)向外界发布ServiceContract,客户端(客服)使用Proxy调用服务器上的方法。注意:这个方法事实上是执行在服务端,因此,你只需要在服务端的方法中处理数据就可以了。
    由于是要通过外网,因此建议你使用HttpBinding。
      

  4.   

    to acqy:
    首先谢谢acqy提出宝贵意见我还有一些情况:
    客服在发送数据时,调用的是总服的方法,在这方法中对数据进行处理(向总服数据库中写入传来的数据(只是记录发送过来的数据),执行相应的操作,并回调设置客服的标志),但是有可能出现异常,这时如何进行呢? 数据表中增加标志列,重新查询数据库,在执行相应的操作,这个动作应该得放在线程中去读数据表信息。监听数据表我感觉应该还得使用撒。
      

  5.   

    to spgoal:
    谢谢acqy提出意见我用的是 SQL server  还是2008了
    你所说的它本身就自带这些功能,sql的ServiceBroker吗?
      

  6.   

    参见http://blog.csdn.net/msjqd/archive/2006/05/11/724344.aspx
      

  7.   

    to spgoal:
    谢谢 spgoal提出建议需求不一样撒,服务端更新了数据,客户端不一定全部都更新,只能用程序撒。