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

最后注:depends.exe工具,不错的~~

时间: 2024-09-30 15:11:19

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

启动C:\Windows\System32\logiLDA.DLL时出现问题,找不到指定模块

环境:windows8.1专业版 问题:启动C:\Windows\System32\logiLDA.DLL时出现问题,找不到指定模块 每次开机都会弹出上图所示的信息. 经过查找是罗技鼠标驱动的问题:而把驱动卸载之后还是会弹对话框,更让人受不了的是C:\Windows\System32\logiLDA.DLL是存在的. 大部分的情况是系统盘不在C盘,而我的在C盘,同样出现这样的问题. 系统盘不在C盘的解决办法: 有遇到的没?Windows8不是安装在C盘,启动时提示LogiLDA.dll找不到-远

自动加载dll,加载dll中程序集的信息。

自动加载程序集,解析程序集中的方法. 1 private static object Invoke(string lpFileName, string Namespace, string ClassName, string lpProcName, object[] ObjArray_Parameter) 2 3 { 4 5 try 6 { // 载入程序集 7 8 Assembly MyAssembly = Assembly.LoadFrom(lpFileName); 9 10 Type[] t

ecshop网页加载waiting(TTFB)时间过长的解决方法

服务器的内存8G,CPU为4核,宽带8M的阿里云 windows server 2012 . apache 2.4.php 5.3 .mysql 5.5 每次打开网站都觉得有点慢,用谷歌浏览器查看网页加载时间都在1秒以上. 查找原因 在init.php文件在 $start_time =  microtime(true); //放在不同的位置,查看最后输出的时间差定位耗时位置 echo microtime(true) - $start_time;exit; //放在文件最后 最后定位出 if (!

在bootstrap modal 中加载百度地图的信息窗口失效解决方法

这个问题其实很傻,解决方法没有任何技术含量,只是记录下工作中发生的事. 前阵子给一个汽车集团客户做了一个经销商查询系统,其中一个功能是使用地图标注经销商店面地址,并且实现导航功能. 页面演示地址:http://www.lyytqm.com/Dealerships 点击地址区域在模态窗口中显示百度地图,并在地图中标注点位,显示窗口信息,但信息窗口展示的信息频繁失效,仅显示名称. 更换了各种加载数据方式不能解决,在蹲厕所时想到了原因,即可给出解决方法. 原因是bootstrap modal 以及动画

Unity带进度条加载场景及场变黑的解决方法

首先说加载场景显示进度条 简单的来说需要协程+Update 一直用UGUI,进度条就用Slider 别忘了引用 using UnityEngine.UI; public Slider slider; 如果想在旁边显示个数字百分比,就再加个Text就好了 public Text text; 假设我们所在场景为old,要去往场景new,如何加载并显示进度呢 可以直接在old场景中做,也可以加一个中间场景专门显示加载进度 我们就加个中间场景吧,叫middle 而加载的进度条slder和百分比文字tex

apache代理tomcat无法加载css,js,图片等资源的解决方法

这个问题苦恼了很久,应该就是开发的代码获取项目的相对路径和绝对路径的问题,但是不改代码用apache代理解决能否实现呢?答案是可以的. 下面是apache代理tomcat访问并https访问的配置 apache2.2,yum安装的 tomcat7,jdk1.7 tomcat的server.conf配置 在Host里加上Context <Host name="localhost"  appBase="webapps" unpackWARs="true&

JS异步加载,JQ事件不被执行解决方法

一,在我们实现动态生成HTML代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&

ASP.NET与非托管DLL的那些事儿【转】

https://www.cnblogs.com/yeahgis/archive/2011/11/12/2246341.html ASP.NET与非托管DLL的那些事儿 环境VS2010 语言:ISO C++.C++\CLI和C# 多语言集成编程 最近在用ASP.NET(C#)开发一个WMS服务器的原型,由于标准C++开发的dll无法直接被C#引用,因此采用(类似SWIG自动包装的效果)C++\CLI进行二次封装和桥接(其实这也是SuperMap的套路,与ESRI的COM的确是不样).现在遇到这样

在VS2010上使用C#调用非托管C++生成的DLL文件

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟