[已解决问题] WebService调用DLL问题,无法初始化怎么搞呢?
提问时间: 2008-04-24 08:53
悬赏分:100 浏览:687 次

环境:

1.C#的WebService。

2.VC++6.0的动态链接库,DLL。

操作:

1.调用WebService,通过DLLIMPORT的自定义属性,去调用VC的DLL。

问题:

运行VS2005调试webservice,调用方法.OK,都可以运行。例如Localhost:3798/webservice/aaa.asmx;

通过IP调用WebService方法,有问题,报错。例如192.168.5.16/webservice/aaa.asmx.

可以出现aaa.asmx访问方法的列表界面。但是调用的时候出现

System.DllNotFoundException: 无法加载 DLL“D:\WebService\WebService\DBES\DLL\WebDB.dll”: 动态链接库(DLL)初始化例程失败。 (异常来自 HRESULT:0x8007045A)。
   在 CSWebDB.IWebDB.WebDbInit()
   在 WebService.SuperWebService.InitDB()
错误问题写得已经很清楚了,希望大虾们能帮我一下。
PS:我已经把所有文件夹的安全属性设为Everyone了。

提问者:黄超 - 初学一级
所有回答(3)
Localhost:3798/webservice/aaa.asmx 192.168.5.16/webservice/aaa.asmx 请问你的localhost和IP为192.168.5.16是同一个计算机吗,如果是那么端口号哪里去了? 另外你的Web Services部署到IIS中了吗?你的Web服务工程建立的时候是不是就不是用的IIS而只是在VS.Net2005中调试,你想用IP访问请将你的Web Services部署到IIS当中,再用192.168.5.16/webservice/aaa.asmx访问看看。
5个月前   回答者:刚刚 - 老鸟四级
asp.net不会把bin目录下的非拖管程序集(dll)拷贝到网站的实际运行目录里,所以加载不了那个VC6编写的dll. 你可以试试以下文法: 1,把那个dll扔到服务器的Windows目录里。 2,在WebService里通用LoadLibrary等Win32API从自己指定的地方加载相关的dll(当然,这个比较麻烦) 3,用C++/CLI对原来的dll做点包装(如果你有原来的代码的话),生成一个托管非托管相混合的新程序集,然后C#代码里调用这个新程序集里的方法。
5个月前   回答者:deerchao - 大侠五级
同意一楼。应该是没有部署到IIS的原因。
5个月前   回答者:笨→鸟(Bird) - 菜鸟二级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关内容

相关链接