闲来无事整理电脑时候发现电脑程序菜单里面有个Microsoft Sync Framework,看到名字也知道是异步框架。但使用场景就不太清楚了。后面查阅了相关资料,知道比较典型的使用就是做文件同步了。

结果第二天就在公司遇到比较坑爹的客户需求,需要将一个网站的数据共享,而且数据量比较大,其中产品的图片就成了一个大问题了。如果修改程序会提高维护成功,而且不可能为一个客户去修改程序,所以只能考虑文件复制过去,添加产品上传图片后也要自动同步过去,最初考虑使用SecondCopy 但是要配置的数量太多,所以绝对用Microsoft Sync 去实现.同时对文件夹进行监控,如果有改变就启动同步。

static void Main(string[] args){//存放需要同步的文件夹,以后其他场景临时使用一下. 格式   <item from="G:\uploads\387364" to=" G:\uploads\387361" />XElement doc = XElement.Load("File.config");var itms = doc.Descendants("item");foreach (var item in itms){var from = item.Attribute("from").Value;var to = item.Attribute("to").Value;if (!string.IsNullOrEmpty(from) && !string.IsNullOrEmpty(to) && Directory.Exists(from)){if (!Directory.Exists(to)){Directory.CreateDirectory(to);}//来源文件夹FileSyncProvider sourceProvider = new FileSyncProvider(Guid.NewGuid(), from);//目录文件夹FileSyncProvider destProvider = new FileSyncProvider(Guid.NewGuid(), to);SyncOrchestrator syncAgent = new SyncOrchestrator();syncAgent.LocalProvider = sourceProvider;syncAgent.RemoteProvider = destProvider;syncAgent.Synchronize();Console.WriteLine(from + " 到 " + to + " 同步完成");//文件夹监控FileSystemWatcher watcher = new FileSystemWatcher(from, "*.jpg");watcher.Changed += (O, E) =>{Console.WriteLine(E.ChangeType);//启动同步回话syncAgent.Synchronize();Console.WriteLine(from + " 到 " + to + " 同步完成");};watcher.EnableRaisingEvents = true;}}Console.ReadLine();}

  

在服务器上使用时候,还是比较稳定,在2万多图片的文件夹下使用,没有出现cpu和内存占用过高的问题.

转载于:https://www.cnblogs.com/xuchengzone/archive/2012/09/03/Microsoft-Sync-Framework.html

使用Microsoft Sync Framework做文件同步相关推荐

  1. Microsoft Sync Framework 系列(三):微软同步框架出现背景及要解决的问题

    持续连接的C\S,B\S系统存在固有的缺陷,偶尔连接系统(OCA)在试图解决这些问题的同时又引入了新的问题.开发offline系统存在很多挑战,这些挑战都是 Microsoft Sync Framew ...

  2. Microsoft Sync Framework 2.1 软件开发包 (SDK)

    Sync Framework 2.1 引入了新功能,这些功能支持您计算机上的 SQL Server 或 SQL Server Compact 数据库与 SQL Azure 数据库进行同步.此发行版还引 ...

  3. Introducing Microsoft Sync Framework: Sync Services for File Systems

    https://msdn.microsoft.com/en-us/sync/bb887623 Introduction to Microsoft Sync Framework File Synchro ...

  4. Microsoft Sync Framework同步数据库 3:针对同步进行设置

    针对同步进行设置 在可以使用 Sync Framework 同步数据库之前,需要通过称为"设置(provisioning)"的流程配置它.所需的设置类型因数据库类型而异.本篇提供有 ...

  5. Syncthing VS Resilio Sync VS Nextcloud 文件同步服务对比

    功能 Syncthing Resilio Sync Nextcloud 版本控制 阶段性版本控制 回收站 限客户端 网络环境 1. 同步无限制 2. 中区中转服务器稀少 1. 同步无限制 2. 设备发 ...

  6. 执行svn sync命令做svn同步时遇到Failed to get lock on destination repos, currently held by ...错误

    手动执行命令时,报错: 发生以上情况的有两种情况: 1.有正在同步的进程未完成,lock未释放: 2.上一次同步的进程异常导致中断,lock未释放. 3.有svn冲突 SVN同步时,源库端会在目标库端 ...

  7. Ubuntu 文件同步工具 rsync

    cp和scp是ubuntu中文件拷贝常用的两个命令,一般在同一台服务器上我们是用cp命令,跨服务时使用过scp命令,但是如果做文件同步的话,rsync要比上述两个命令更好用一些,跨不跨服务器都是如此. ...

  8. 可用于在 Microsoft.NET Framework 4.0 中的 ASP.NET 浏览器定义文件的修补程序

    http://support.microsoft.com/kb/2600088 此修补程序为 Internet Explorer 和 Mozilla Firefox 在浏览器定义文件引入了更新的定义. ...

  9. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...

    相关文章导航 Sql Server2005 Transact-SQL 新兵器学习总结之-总结 Flex,Fms3相关文章索引 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统 ...

  10. IIS异常:CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.。。”--“拒绝访问...

    CS0016: 未能写入输出文件"c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/........ ...

最新文章

  1. 一文教会你写90%的shell脚本!
  2. LeetCode 657 : Robot Return to Origin
  3. 单机部署zookeeper、kafka
  4. 深度复制_Python 列表切片陷阱:引用、复制与深复制
  5. 面向接口编程详解(三)——模式研究
  6. linux下JNI的demo
  7. C#获取本机可用端口
  8. python用matplotlib画球_python 如何用matplotlib画一个漂亮的圆-百度经验
  9. Eclipse导入GitHub上面项目的两处报错处理
  10. 分享100个好看且实用的PPT模板
  11. Qunee For Html5 开发清新、高效的拓扑图组件
  12. 22二叉树非递归遍历算法
  13. 自己建设网站需要学习什么?
  14. 取石子游戏--尼姆博弈
  15. 金项奖入围展播 | 梦系来客,星耀有礼
  16. python2升级python3语法错误总结
  17. 第一次实验报告学习总结
  18. 使用广播信道的数据链路层相关知识点
  19. html banner图片滚动,无缝循环滚动(适用banner、图片滚动)
  20. 戴尔服务器t420系统,戴尔PowerEdge T420

热门文章

  1. 享元模式在文本编辑器中的应用
  2. Mysql 哈希索引
  3. Lua 如何快速的读取一个文件
  4. 协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格
  5. FZU_2019_Mountain Number题解
  6. Docker 外部访问容器Pp、数据管理volume、网络network 介绍
  7. vue.js MVVM模式介绍及案例
  8. jquery.serialize
  9. 乘法器的Verilog HDL实现
  10. 每日英语:6 Brainy Habits of the Wisest People