最近開發一個項目,裏面用到了非.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