我的数据库处理是在webservice这端的,你们的意思是先起一个事务,等拿到返回值以后再提交?
事务可以这样做吗?用那个2.0了Transactions可以完成这样的任务?

解决方案 »

  1.   

      经过一点摸索,发现把webservice调用放到TransactionScope里是不行的,就算网络通畅也不能回滚和提交,网络断线的时候会触发异常
    但是webservice并不知道,他会自己做完他的工作,并且提交。
      现在摆在我面前的好像就两条路了:
      第一,使用分布式事务,就按以前enterprise service的老路做,另外我知道要想让transactionscope自动升格成分布式事务的话,就需要
    web服务器和数据库服务器不是同一台机器,然后配置ms dtc,但是我现在是一台机器,因为webservice和数据库服务器是一台机器,这种情况
    还可以让他自动升格为分布式事务嘛?如果能的话是这么做简单还是用enterprise service简单呢?
      第二,也就是webservice在更新完必要的数据后去更新一张“任务状态管理表”,这张表里有个任务id,我只要保证webservise的原子性就可以了
    如果发生网络中断,我就在下次网络恢复的时候根据任务号去检索“任务状态管理表”看看上次是不是更新成功,如果没有就提示用户重新操作,如果
    成功了就告诉用户任务成功了。大家觉得那种方法好呢,如果还有别的方法,不吝赐教!!