起初我试过这个:
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/