我在Visual Studio 2008中使用.net 3.5建立了一个项目,该项目有一个组件,用于将数据从我的sqlserver同步到客户端的sqlce数据库(SDF文件)。一切工作正常,直到我决定升级项目到Visual Studio 2010,而现在下面的代码崩溃:Microsoft.Synchronization SyncAgent在升级到VS2010后崩溃
try
{
MySyncAgent syncAgent = new MySyncAgent(filter);
SyncStatistics syncStats = syncAgent.Synchronize(); //this crashes
}
的例外,我得到的是:异常消息= [对象引用不设置到对象的实例]:堆栈跟踪= [AT SYSTEM.DATA.SQLSERVERCE.SQLCECHANGETRACKING.UPGRADEPUBLICTRACKING(STRING的connectionString) AT MICROSOFT.SYNCHRONIZATION.DATA.SQLSERVERCE.SQLCECLIENTSYNCPROVIDER.PERFORMUPGRADEIFNECESSARY() AT MICROSOFT.SYNCHRONIZATION.DATA.SQLSERVERCE.SQLCECLIENTSYNCPROVIDER.BEGINTRANSACTION(SYNCSESSION SYNCSON) AT MICROSOFT.SYNCHRONIZATION.SYNCAGENT.DATASYNCHRONIZE() AT MICROSOFT.SYNCHRONIZATION.SYNCAGENT.SYNCHRONIZE()
我错过了什么?
仅供参考,我MySyncAgent类的构造函数如下:
public class MySyncAgent : Microsoft.Synchronization.SyncAgent
{
public MySyncAgent(string filter)
{
this.InitializeSyncProviders(filter);
this.InitializeSyncTables();
}
}
非常高兴能够为我们带来整个堆栈跟踪。你真的不应该有。 – 2012-04-15 19:43:22
你检查过你的ConnectionString吗?也就是说,除了Sync fx之外,您还可以访问SqlCe Db吗? – 2012-04-15 19:45:33
是的,可以从同步问题打开sdf – steve 2012-04-16 12:59:55