Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 使用Microsoft Sync Framework跨网络同步文件_Wcf_Sync_Microsoft Sync Framework - Fatal编程技术网

Wcf 使用Microsoft Sync Framework跨网络同步文件

Wcf 使用Microsoft Sync Framework跨网络同步文件,wcf,sync,microsoft-sync-framework,Wcf,Sync,Microsoft Sync Framework,这里给出的文件同步示例只讨论在同一台机器上同步文件。有没有人遇到过这样一个工作示例,即使用类似WCF的东西使其能够在网络上对文件工作 Bryant的示例-不完整,只是单向同步,不太理想。只要您有可用的网络共享,同步框架就可以跨网络同步文件 在FileSyncProvider的构造函数中,将rootDirectoryPath设置为您具有读写权限的网络共享位置: string networkPath = @"\\machinename\sharedfolderlocation";

这里给出的文件同步示例只讨论在同一台机器上同步文件。有没有人遇到过这样一个工作示例,即使用类似WCF的东西使其能够在网络上对文件工作


Bryant的示例-不完整,只是单向同步,不太理想。

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

在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命令的路径相同。可能是什么问题???可能是\\before sharedPath?我不确定。