asp.net調用非託管dll,沒法加載 DLL,找不到指定模塊解決方法。【轉】

asp.net調用非託管dll,沒法加載 DLL,找不到指定模塊解決方法。html

 

最近開發一個項目,裏面用到了非.net開發的一個dll文件接口,發現發佈到window2003服務器上後,運行網站老是提示 「沒法加載 DLL「D:\11\1.dll」: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。 」這個錯誤。可是我在本地xp系統上調試是能夠的。安全

dll使用com調用以下服務器

[DllImport(@」D:\11\1.dll」, EntryPoint = 「aaa」, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
public static extern Boolean aaa(bool x);asp.net

提問地址:http://topic.csdn.net/u/20121031/17/2085fdf4-cf81-4cf9-8650-e02c1ed8d67d.html工具

解決方法:post

步驟一:dll調用使用絕對路徑,如DllImport(@」D:\11\1.dll」或者將調用dll文件放到system32目錄下。網站

可參考http://blog.csdn.net/xsgreen/article/details/3647501url

步驟二:使用depends.exe工具查看要調用的dll文件引用了哪些組件(其它dll文件),搜索服務器system32目錄,對比dll引用的組件是否存在服務器system32目錄中,若是不存在,將缺乏的dll文件複製到要調用的dll文件相同目錄中。通過對比,發現服務器system32目錄下缺乏了borlndmm.dll這個dll文件,複製borlndmm.dll到服務器D盤11文件夾下,問題解決。
.net

步驟三:若是上面還沒解決,應該就是權限問題,選中要調用dll文件存放文件夾,鼠標右鍵-》安全-》添加aspnet賬號(ASP.NET Machine Account),勾選徹底控制便可。調試

若是以上三步還不行,就不知道了。

源地址:http://www.cnblogs.com/slyzly/articles/2748940.html

相關文章
相關標籤/搜索