2014-02-27 22 views
3

起初,我嘗試這樣:設置PublicationMonitor.ConnectionContext拋出一個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。

+0

「SMTDEV \ SQL2008」是您的分銷商的名稱嗎?你有沒有機會使用遠程分銷商? –

+0

另外,您是否可以在異常助手中查看詳細信息...並查看它是否提供了其他詳細信息?具體來說,檢查是否有InnerException中的其他細節。 –

+0

布蘭登,發行商和分銷商都是SMTDEV \ SQL2008。然而,SMTDEV並不是我運行代碼的開發機器,因此...經銷商對於發佈商而言並不遙遠,但顯然它對開發機器來說是遙遠的。 – BVernon

回答

1

我有同樣的問題,我通過檢查我使用的是什麼版本的DLL來修復它。我的項目引用了2008程序集(100/SDK文件夾),但是我的本地共享SQL組件已升級到2012.當我將引用更改爲2012程序集(110/SDK)時,它工作正常。

希望這會有所幫助。

+0

我不知道這是否會解決我的問題,這不是我要回去檢查在這個時間點,但即使這不是正確的答案,這可能是最接近很好的回答這個問題會得到,所以我標記它:) – BVernon

相關問題