2013-03-11 37 views
2

我正在創建一個Windows服務。該服務必須每天從Advantage數據庫讀取數據。優勢錯誤6082

我複製了我的電腦上的優勢數據庫,它工作正常,但是當我嘗試,我有以下錯誤的服務器上的服務:

「AdsException:錯誤6082:錯誤加載優勢本地服務器庫「。

根據文檔(link)我必須將ADSLOC32.DLL放在\ WINDOWS \ SYSTEM目錄中。

我嘗試,但它不起作用。

任何想法?

編輯:我創建了一個控制檯應用程序,執行完全相同的代碼作爲我的Windows服務,它的工作原理應該是這樣。似乎問題是從我的服務,但我不知道我的服務是什麼部分是錯誤的...

編輯2:我檢查與進程監視器和我的服務不會嘗試加載adsloc32。 DLL,它會嘗試加載adsloc64.dll。我沒有找到adsloc64.dll文件,所以我將adsloc32.dll複製到我的應用程序目錄中,並將其命名爲adsloc64.dll,但它不起作用。

+0

對於32位DLL而不是系統(這是舊的16位Windows目錄),應始終使用System32(32位系統)或SysWOW64(在64位系統上)。文件在這方面不正確。 http://msdn.microsoft.com/en-us/library/7d83bc18(v=vs.80).aspx – 2013-03-11 13:09:29

+0

那麼Windows仍然會搜索16位目錄,但僅用於向後兼容。請參閱此鏈接: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx – 2013-03-11 13:17:04

+0

System32中已經有一個adsloc32.dll文件, SYSWOW64。 我嘗試將該文件放入我的應用程序目錄,但它仍然無法工作。 – 2013-03-11 13:59:25

回答

2

我找到了解決方案。

我用Windows Sysinternals的進程監視器知道程序試圖加載dll文件的位置。 它不是試圖加載adsloc32.dll,而是加載adsloc64.dll。

我只是把adsloc64.dll文件放到我的應用程序目錄中,它現在可以工作。

2

嘗試將adsloc32.dll放到與您的應用程序相同的目錄中。也許有一些權利問題

+0

我試過你的解決方案,但它不起作用。 – 2013-03-11 14:27:46