在这种情况下如何处理事务范围?

时间:2013-08-22 11:55:50

标签: c# transactions transactionscope rollback

我在交易范围方面没有太多工作,我想确保在我跳得太深之前我正确地接近这个想法。

设置/目标

  • 我有一个项目列表,这些项目是要复制到远程系统的文件。
  • 对于该列表中的每个文件,我需要创建一个事务:
    • 将文件复制到远程系统
    • 调用Web服务,将对该新文件的引用添加到数据库中。
  • 如果Web服务调用或文件复制失败,我需要回滚两个操作。
    • 回滚文件副本将意味着删除远程系统上的文件。
    • 回滚Web服务操作意味着调用另一种Web服务方法来删除我刚刚创建的条目。
  • 如果项目列表中的任何项目失败,我想返回某种消息,但不会阻止其他项目被提交。

我正在考虑做什么

在我(非常有限)的主题阅读中,我认为这可能是正确的方法:

  • 为允许其参与持久交易的文件副本创建资源管理器
  • 为同一行的Web服务调用创建资源管理器
  • 为列表中的每个项目创建一个foreach循环
  • 对于每个项目,创建一个使用两个资源管理器的事务范围,并在出现问题时回滚/报告。

问题

  • 我在这里没有看到任何东西或者我应该实施的新方法,或者这实际上是要走的路?

迄今为止的资源

当我检查问题并试图绕过它时,这些是我正在阅读的一些页面:

预先感谢您提供任何帮助!

0 个答案:

没有答案