随笔 - 833  文章 - 1  评论 - 106  阅读 - 200万

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。【转】

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。

 

最近开发一个项目,里面用到了非.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);

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

解决方法:

步骤一:dll调用使用绝对路径,如DllImport(@”D:\11\1.dll”或者将调用dll文件放到system32目录下。

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

步骤二:使用depends.exe工具查看要调用的dll文件引用了哪些组件(其它dll文件),搜索服务器system32目录,对比dll引用的组件是否存在服务器system32目录中,如果不存在,将缺少的dll文件复制到要调用的dll文件相同目录中。经过对比,发现服务器system32目录下缺少了borlndmm.dll这个dll文件,复制borlndmm.dll到服务器D盘11文件夹下,问题解决。

步骤三:如果上面还没解决,应该就是权限问题,选中要调用dll文件存放文件夹,鼠标右键-》安全-》添加aspnet帐号(ASP.NET Machine Account),勾选完全控制即可。

如果以上三步还不行,就不知道了。

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

posted on   3D入魔  阅读(873)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示