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

Posted

技术标签:

【中文标题】调用构造函数时,Microsoft.Synchronization.Data.SqlServerCe 中缺少方法异常【英文标题】:Missing Method Exception in Microsoft.Synchronization.Data.SqlServerCe when calling constructor 【发布时间】:2015-08-27 21:46:54 【问题描述】:

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

具体来说,当我尝试构建演练的 ProvisionClient 组件时出现“缺少方法”异常 (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,那么我会得到@ 的缺失方法异常987654328@线。

我做错了什么?看起来它不想接受clientConn 参数,但没有它就无法知道要配置什么数据库。

TIA,这是我在 *** 上的第一篇文章!

【问题讨论】:

您使用的是 SQL CE 4 吗? 是的,我正在使用 SQL CE 4.0 和 MS Sync Framework 2.1。 【参考方案1】:

同步框架不支持 SQL CE 4.0。

看看我在博客here 上使用绑定重定向的解决方法。

【讨论】:

@abaustin 有用吗?我现在学习了 15 个教程,但都已经过时了

以上是关于调用构造函数时,Microsoft.Synchronization.Data.SqlServerCe 中缺少方法异常的主要内容,如果未能解决你的问题,请参考以下文章

单击第二次链接PrimeFaces时,构造函数不会调用

生成一个派生类对象时,调用基类和派生类构造函数按啥次序

调用重载的构造函数时不会调用默认的构造函数

C++创建派生类对象时,调用构造函数顺序

调用超级构造函数时尝试资源

为啥执行时没有执行基类的构造函数?