【问题标题】:Using Microsoft Sync Framework to sync files across network使用 Microsoft Sync Framework 跨网络同步文件
【发布时间】:2011-06-17 00:36:45
【问题描述】:

这里给出的文件同步示例 - http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3424 只讨论在同一台机器上同步文件。有没有人遇到过使用 WCF 之类的东西来使其能够跨网络处理文件的工作示例?

Bryant 的示例 - http://bryantlikes.com/archive/2008/01/03/remote-file-sync-using-wcf-and-msf.aspx 不完整,只是单向同步,不太理想。

【问题讨论】:

  • 我试过了,但似乎不可能。文件提供程序使用了很多内部类,我看不到代理它们的方法。

标签: wcf sync microsoft-sync-framework


【解决方案1】:

只要您有可用的网络共享,同步框架就可以跨网络同步文件。

在 FileSyncProvider 的构造函数中,将 rootDirectoryPath 设置为您具有读写权限的网络共享位置:

    string networkPath = @"\\machinename\sharedfolderlocation";

    FileSyncProvidor provider = new FileSyncProvider(networkPath);

要以这种方式进行双向同步,您需要为源系统和目标系统创建一个 FileSyncProvider,并使用 SyncOrchestrator 为您完成繁重的工作。

一个例子:

    string firstLocation = @"\\sourcemachine\sourceshare";
    string secondLocation = @"\\sourcemachine2\sourceshare2";

    FileSyncProvidor firstProvider = new FileSyncProvider(firstLocation);
    FileSyncProvidor secondProvider = new FileSyncProvider(secondLocation);

    SyncOrchestrator orchestrator = new SyncOrchestrator();
    orchestrator.LocalProvider = firstProvider;
    orchestrator.RemoteProvider = secondProvider;
    orchestrator.Direction = SyncDirectionOrder.DownloadAndUpload;

它的作用是定义两个文件同步提供程序,编排器将双向同步文件。它跟踪提供程序中设置的目录中文件的创建、修改和删除。

此时需要在 SyncOrchestrator 上调用 Synchronize:

    orchestrator.Synchronize();

【讨论】:

  • 如果我使用使用 IP 的网络路径,例如“\\10.1.1.102\\sharedPath”,则无法创建实例。它只是给我“找不到文件路径的一部分”的错误。我能够访问 usng run 命令的相同路径。可能是什么问题???
  • 可能是 sharedPath 之前的 \\?我不确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多