【发布时间】:2017-11-16 21:38:29
【问题描述】:
我开发了一个同步软件,可以使用 Microsoft Sync Framework 2.1 同步数据库和目录。
一段时间后,使用该应用程序的客户端收到此错误:
存储引擎操作失败,错误代码为 25104(HRESULT = 0x80004005,源 IID = {0C733A63-2A1C-11CE-ADE5-00AA0044773D},参数 =(4001, 0, 0, , , ,))。
我试图在我的代码中跟踪错误,但没有成功。
当 SyncOchestrator 开始同步时发生错误。从我得到的堆栈跟踪中:
在 Microsoft.Synchronization.Files.FileSyncProvider...ctor()
这是我的一些编码:
try
{
// Set options for the sync operation
FileSyncOptions options = FileSyncOptions.ExplicitDetectChanges |
FileSyncOptions.RecycleDeletedFiles | FileSyncOptions.RecyclePreviousFileOnUpdates | FileSyncOptions.RecycleConflictLoserFiles;
FileSyncScopeFilter filter = new FileSyncScopeFilter();
filter.FileNameExcludes.Add("*.lnk"); // Exclude all *.lnk files
filter.FileNameExcludes.Add("*.mdf"); // Exclude all *.mdf files
filter.FileNameExcludes.Add("*.ldf"); // Exclude all *.ldf files
filter.FileNameExcludes.Add("*.MDF"); // Exclude all *.MDF files
filter.FileNameExcludes.Add("*.LDF"); // Exclude all *.LDF files
filter.FileNameExcludes.Add("*.tdms_index"); // Exclude all *.tdms_index files
Thread.Sleep(50);
// Synchronization of 2 Folders
FileSyncProvider providerA = new FileSyncProvider(Guid.NewGuid(), replica1RootPath, filter, options);
FileSyncProvider providerB = new FileSyncProvider(Guid.NewGuid(), replica2RootPath, filter, options);
providerA.DetectChanges();
providerB.DetectChanges();
Thread.Sleep(50);
SyncOrchestrator agent = new SyncOrchestrator();
agent.LocalProvider = providerA;
agent.RemoteProvider = providerB;
agent.Direction = SyncDirectionOrder.Upload;
MessageBox.Show("Let's SYNC");
agent.Synchronize(); // The error happens here
Thread.Sleep(50);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
MessageBox.Show(e.StackTrace);
}
你能帮我解决这个问题吗?我越来越沮丧,我不知道该往哪里看!该代码完美运行了一年。
更多信息:
- 最终用户拥有文件夹所需的所有访问权限。
- 文件服务器有足够的可用空间来写入。
我正在使用 C#、Microsoft.Synchronization 2.1、.Net 4、Visual Studio 2015。
非常感谢您的任何建议。
【问题讨论】:
标签: c# desktop-application microsoft-sync-framework sql-server-2014-express