我在服务器上的客户端和Win2003上使用WinXP。在WinXP上使用.NET的文件系统事务
我需要做原子操作:创建移动文件,插入更新数据库。
是否有使用WinXP的文件系统交易的任何良好做法? 我知道Vista/Win2008/Win7在WinXP中有TxF事务(NTFS),但是不是。
我不想使用COM +,也没有其他复杂的解决方案。只需要良好的示例代码,以获得良好的实践。
Transactions and file-actions by Alberto Poblacion
在早于Windows Vista的版本,文件系统是不是 事务性的,所以你需要一个单独的工具做你的文件的交易。
您可以使用组件服务(COM +)实施补偿资源 管理器(CRM)。如果在更新 文件期间崩溃,CRM将提供事务日志并在系统重新启动期间回滚 更改,但您必须提供代码(在您自己的DLL中)提交,并且 回滚冲突,通常通过将文件移入或移出临时文件夹。它可以通过System.EnterpriseServices命名空间的 以.NET完成。如果我没有记错,微软的官方课程2557包含了一章,教导如何创建一个CRM, ,他们使用的例子正好建立在对 文件系统的修改上。
在新版本的Windows,你可以 NTFS做事务性操作:
http://msdn.microsoft.com/en-us/library/bb986748(VS.85).aspx
编辑。
参考文献:
https://transactionalfilemgr.codeplex.com/
http://www.codeproject.com/Articles/690136/All-About-TransactionScope
http://ayende.com/blog/4528/who-stole-my-transaction
http://www.chinhdo.com/20080825/transactional-file-manager/
关于它的任何完整源代码示例? http://www.codeproject.com/Articles/690136/All-About-TransactionScope – Kiquenet 2013-12-02 21:19:25