c# - 设置 PublicationMonitor.ConnectionContext 会引发 NullReferenceException

标签 c# sql-server-2008 replication nullreferenceexception

起初我试过这个:

var conn = new ServerConnection(@"SMTDEV\SQL2008", "login", "password");
var pubMon = new PublicationMonitor("PRMDemoRep", "distribution", @"SMTDEV\SQL2008", "PRMDemo", conn);

如果我在第二行设置一个断点,我就能够从立即窗口成功运行以下代码:

conn.ExecuteScalar("select 1");

所以我知道 ServerConnection 工作正常并且绝对不为空。其他参数都是字符串,所以应该没有问题,但是当我运行第二行时,我一直收到 NullReferenceException。

我还尝试使用 PublicationMonitor 的无参数构造函数,我能够以这种方式设置每个字符串属性,但是当我将 ConnectionContext 设置为我的 ServerConnection 时,我得到了 NullReferenceException。

有人知道为什么会发生这种情况吗?

编辑:我也刚刚对 ReplicationMonitor 类进行了尝试,但遇到了同样的问题。我试图将它指向多个服务器,但总是遇到 NullReferenceException。

最佳答案

我遇到了同样的问题,我通过检查我使用的 dll 版本来修复它。我的项目引用了 2008 程序集(100/SDK 文件夹),但是我的本地共享 SQL 组件已升级到 2012。当我更改对 2012 程序集(110/SDK)的引用时,它起作用了。

希望这对您有所帮助。

关于c# - 设置 PublicationMonitor.ConnectionContext 会引发 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22081996/

相关文章:

sql - 在查询中使用过滤器和 CONTAINSTABLE 时执行计划不佳

在计算机之间复制数据的算法

database - 将 postgres 服务器扩展到多个服务器

c# - NeatUpload 在远程服务器上上传 pdf 和 gif 文件时出现问题

sql - 如何在 SSMS 中生成多个 Alter 脚本

Java Hibernate 保存实体在 Sql Server 2008 上失败

mysql - 在mysql-5.6中使用gtid在mysql上复制主从

java - 如何将具有两个更新语句的 Java MessageDigest 转换为 C#

c# - 从列表中实例化的类中获取字段列表,并比较它们

c# - string.Compare 是否可以为真正不相等的字符串返回 0?