我需要將應用程序從Windows 2003遷移到Windows 2012 R2。還有一個SNMP擴展代理DLL(32位),也需要遷移。Windows 2012 R2 32位SNMP擴展代理
我已經安裝了SNMP服務並嘗試配置擴展代理。
起初,我試圖做同樣的方式,因爲它是在Windows 2003: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents
:
"1"="SOFTWARE\\MyCompany\\MyAgent\\CurrentVersion"
和 HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany\MyAgent\CurrentVersion
: "Pathname"="C:\bin\myagent"
。
但extenstion代理沒有啓動和系統事件日誌中,我發現這個日誌:
SNMP服務忽視擴展代理DLL C:\ BIN \ myagent ,因爲它缺少或配置不當。
存在文件"myagent.dll"
。所以我試着將"dll"
擴展名添加到註冊表項中,結果相同。
經過一些互聯網研究,我發現,32位應用程序的註冊表鍵應該在Wow6432Node
sud-tree下。讓我感動的配置註冊表樹:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyCompany\MyAgent\CurrentVersion
,並改變了對擴展代理配置爲指向正確的註冊表子樹。在此之後,系統事件日誌中沒有錯誤日誌,但DLL不會由任何進程加載(由Process Explorer檢查)。
有沒有人有任何建議? (不幸的是,重新編譯爲64位不是一種選擇)。
您需要將其重新編譯爲64位,然後64位SNMP服務才能加載它。 –
嗯,我這樣做了。但沒有效果。 – dalicrosKH