2014-09-03 58 views
0

我一直有一段時間試圖讓這個工作。我在VB.NET中編寫了一個服務和一個表單應用程序,它們都需要訪問一個註冊表鍵來找到一臺擁有我的數據庫的計算機。在表單應用程序中,它的效果很好,但服務沒有。我認爲這是一個權限問題,所以我檢查了服務器上的權限(Windows 2008),他們沒事 - 我甚至跑到服務器作爲管理員,以防萬一是問題,但仍然沒有喜悅。我的代碼有問題嗎?獲取Windows服務來讀取註冊表HKLM

我試過訪問註冊表的方法。第一種方法只是設置服務器變量沒有和「RK」變量最終是沒有第二個方法(告訴我,它甚至不能找到子鍵):

Dim server As String = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\EPS\XPV", "Server", Nothing) 

,第二個是:

Dim rk As RegistryKey = Registry.LocalMachine.OpenSubKey("\SOFTWARE\EPS\XPV") 

服務本身,因爲我這幾行告訴我值爲空所以它只是歸結爲搞清楚爲什麼我不能訪問該服務的註冊表,即使之後讓我的日誌消息啓動就好了儘管我可以在表單應用中使用。

+1

服務是32位還是窗體應用程序是64位?或相反亦然? – Blorgbeard 2014-09-03 23:52:00

+0

該服務是32位和平臺是64,但我的表單應用也是如此 – C4W 2014-09-04 19:51:26

+0

我很驚訝在這一週沒有運動,我希望這是一個簡單的解決方案,但它看起來不是這樣。 – C4W 2014-09-12 15:47:07

回答

1

請在HKLM \ SOFTWARE \ Wow6432Node下查找您的鍵/值,或者將您的應用程序編譯爲64位。