首页 新闻 会员 周边 捐助

WebService调用DLL问题,无法初始化怎么搞呢?

0
悬赏园豆:100 [已关闭问题]
<P>环境:</P> <P>1.C#的WebService。</P> <P>2.VC++6.0的动态链接库,DLL。</P> <P>操作:</P> <P>1.调用WebService,通过DLLIMPORT的自定义属性,去调用VC的DLL。</P> <P>问题:</P> <P>运行VS2005调试webservice,调用方法.OK,都可以运行。例如Localhost:3798/webservice/aaa.asmx;</P> <P>通过IP调用WebService方法,有问题,报错。例如192.168.5.16/webservice/aaa.asmx.</P> <P>可以出现aaa.asmx访问方法的列表界面。但是调用的时候出现</P> <P>System.DllNotFoundException: 无法加载 DLL“D:\WebService\WebService\DBES\DLL\WebDB.dll”: 动态链接库(DLL)初始化例程失败。 (异常来自 HRESULT:0x8007045A)。<BR>&nbsp;&nbsp; 在 CSWebDB.IWebDB.WebDbInit()<BR>&nbsp;&nbsp; 在 WebService.SuperWebService.InitDB()<BR>错误问题写得已经很清楚了,希望大虾们能帮我一下。<BR>PS:我已经把所有文件夹的安全属性设为Everyone了。</P>
黄超的主页 黄超 | 初学一级 | 园豆:100
提问于:2008-04-24 08:53
< >
分享
其他回答(2)
0
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访问看看。
刚刚 | 园豆:3151 (老鸟四级) | 2008-04-24 12:18
0
asp.net不会把bin目录下的非拖管程序集(dll)拷贝到网站的实际运行目录里,所以加载不了那个VC6编写的dll. 你可以试试以下文法: 1,把那个dll扔到服务器的Windows目录里。 2,在WebService里通用LoadLibrary等Win32API从自己指定的地方加载相关的dll(当然,这个比较麻烦) 3,用C++/CLI对原来的dll做点包装(如果你有原来的代码的话),生成一个托管非托管相混合的新程序集,然后C#代码里调用这个新程序集里的方法。
deerchao | 园豆:8367 (大侠五级) | 2008-04-24 20:50
0
同意一楼。应该是没有部署到IIS的原因。
Bēniaǒ | 园豆:692 (小虾三级) | 2008-04-26 01:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册