我正在使用VisualStudioCommunity2015,并试图完成有关如何将Server数据库与本地Server契约数据库同步的MSDN演练。
具体来说,当我试图构建演练的ProvisionClient组件(https://msdn.microsoft.com/en-us/library/ff928765(v=sql.110).aspx )时,我得到了一个“缺失方法”异常。
确切的错误是:
System.MissingMethodException类型的未处理异常发生在dnx.host.dll中 附加信息:方法未找到:'Void Microsoft.Synchronization.Data.SqlServerCe.SqlCeSyncScopeProvisioning..ctor(System.Data.SqlServerCe.SqlCeConnection,Microsoft.Synchronization.Data.DbSyncScopeDescription)'.‘
这是我的密码:
using System.Data.SqlClient;
using System.Data.SqlServerCe;
using Microsoft.Synchronization.Data;
using Microsoft.Synchronization.Data.SqlServer;
using Microsoft.Synchronization.Data.SqlServerCe;
namespace ProvisionClient
{
class Program
{
static void Main(string[] args)
{
// create a connection to the SyncCompactDB database
SqlCeConnection clientConn = new SqlCeConnection(@"Data Source='C:\proj\synctest\SyncSQLServerAndSQLCompact\SyncCompactDB.sdf'");
// create a connection to the SyncDB server database
SqlConnection serverConn = new SqlConnection("Data Source=SHRIMAD\\SQLEXPRESS; Initial Catalog=SyncDB; Integrated Security=True");
// get the description of ProductsScope from the SyncDB server database
DbSyncScopeDescription scopeDesc = SqlSyncDescriptionBuilder.GetDescriptionForScope("ProductsScope", serverConn);
// create CE provisioning object based on the ProductsScope
SqlCeSyncScopeProvisioning clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);
// starts the provisioning process
clientProvision.Apply();
}
}
}我注意到在网上:
// create CE provisioning object based on the ProductsScope
SqlCeSyncScopeProvisioning clientProvision = new SqlCeSyncScopeProvisioning(clientConn, scopeDesc);如果我调用只有scopeDesc的构造函数,那么异常就不会出现,但是如果我用clientConn调用下面的clientProvision.Apply,则会得到Apply行缺少的方法异常。
我做错了什么?看起来它不想接受clientConn参数,但是如果没有这个参数,它就不知道要提供什么DB。
蒂娅,这是我在StackOverflow上的第一篇文章!
发布于 2015-08-28 06:02:18
同步框架不支持SQLCE4.0。
看看我博客中使用绑定重定向的这里的解决方案。
https://stackoverflow.com/questions/32259988
复制相似问题