首页 新闻 会员 周边

困扰了我一个星期的大难题

0
悬赏园豆:50 [已关闭问题]

.net在调用非扩管的dll的时候出现了错误,不知道怎么解决.

问题出现在:LoadLibrary方法调用后,Marshal.GetLastWin32Error()的错误代码为5

代码:
   System.IntPtr moduleHandle = LoadLibrary(dllFilePath);
   if (moduleHandle == IntPtr.Zero)
   {
    int errorCode = Marshal.GetLastWin32Error();
    throw new Exception(string.Format("加载Dll时发生错误: {0}, error - {1}" , dllFilePath , errorCode));
   }
   return moduleHandle;

网上查了代码为5的原因好像是:Attempt was made to dynamically link to a task, or there was a
    sharing or network-protection error.
(不是很确定就是这个原因)

但是不知道怎么解决。

顺便:这个问题在本地机器和测试服务器上都不会出现,在正式服务器上就出现了,怀疑是权限设置等问题,但又不确定是什么具体问题,所以请各位大哥大姐帮小弟一把。

大太阳底下跪谢了~~~

 

Janksen的主页 Janksen | 初学一级 | 园豆:100
提问于:2009-07-02 21:21
< >
分享
其他回答(3)
0

从你提供的信息中很难断定是什么问题.

你可以试下在正式服务器上先RegSvr32 .dll再运行.

Godtear.com | 园豆:205 (菜鸟二级) | 2009-07-02 22:13
0

用DependWalk 查一下dll的依赖项,是不是那台服务器少装了你们开发机的某些东西呢;

可能依赖了开发环境的某个程序集;

winzheng | 园豆:8797 (大侠五级) | 2009-07-02 23:21
0

错误5 是 Access Denied,就是访问拒绝。你的非托管DLL肯定是访问了什么文件,信号量,互斥量之类的windows 内核资源,又没有取得相应的权限。

eaglet | 园豆:17139 (专家六级) | 2009-07-03 12:46

7z.dll这个我是加载他,老提示如上错误,问题在哪呢

支持(0) 反对(0) Wendy 's | 园豆:209 (菜鸟二级) | 2015-06-19 14:54
0

这个问题,最后找到解决方法了么?我也遇到了。

Wendy 's | 园豆:209 (菜鸟二级) | 2015-06-19 14:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册