起初我试过这个:
var conn = new ServerConnection(@"SMTDEV\SQL2008", "login", "password");
var pubMon = new PublicationMonitor("PRMDemoRep", "distribution", @"SMTDEV\SQL2008", "PRMDemo", conn);
如果我在第二行设置了断点,我可以从即时窗口成功运行以下代码:
conn.ExecuteScalar("select 1");
所以我知道ServerConnection工作正常,绝对不是null。其他参数都是字符串,所以那里应该没有问题,但是当我运行第二行时,我不断收到NullReferenceException。
我也尝试使用PublicationMonitor的无参数构造函数,我能够以这种方式设置每个字符串属性,但是当我将ConnectionContext设置为我的ServerConnection时,我得到了NullReferenceException。
任何人都有任何想法,为什么这个世界会发生?
编辑:我刚刚尝试使用ReplicationMonitor类,遇到了同样的问题。我试图将它指向多个服务器,但总是遇到NullReferenceException。答案 0 :(得分:1)
我有同样的问题,我通过检查我正在使用的dll的版本来修复它。我的项目引用了2008程序集(100 / SDK文件夹),但我的本地共享SQL组件已升级到2012.当我将引用更改为2012程序集(110 / SDK)时,它工作正常。
希望这有帮助。