调用构造函数时Microsoft.Synchronization.Data.SqlServerCe中缺少方法异常

本文关键字:方法 异常 SqlServerCe Data 构造函数 Microsoft Synchronization 调用 | 更新日期: 2023-09-27 18:10:05

我正在使用Visual Studio Community 2015,并尝试执行MSDN演练,了解如何将SQL Server数据库与本地SQL Server Compact数据库同步。

特别是,当我尝试构建演练的ProvisionClient组件时,我得到了一个"Missing Method"异常(https://msdn.microsoft.com/en-us/library/ff928765(v=sql.110(.aspx(

准确的错误是:

dnx.host.dll 中发生"System.MissingMethodException"类型的未处理异常

其他信息:找不到方法:"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。

TIA,这是我在StackOverflow上的第一篇帖子!

调用构造函数时Microsoft.Synchronization.Data.SqlServerCe中缺少方法异常

Sync Framework不支持SQL CE 4.0。

看看我在博客中提到的使用绑定重定向的解决方法。