跪求解决办法,请三层架构 出现“加载dll异常”
跪求解决方法,请高手指点三层架构 出现“加载dll错误”
我用vb做了一个三层架构的程序,中间层(cdservice)和数据层(daservice)放在服务器上(2003),客户端(uiservice)在局域网的一台xp的电脑上,数据层我建立了一个activeX.DLL引用了microsoft activeX data objects 2.7 library,生成了daservice.dll,在cdservice.exe(中间层用的是activeX.exe)也加入了对daservice.dll,在服务器(2003)上测试没有任何问题,可是在xp 上远程连接,能够连接到cdservice.exe,但是不知为什么cdservice.exe不能够对daservice.dll进行操作,客户端提示我“加载dll错误”,我也不知道哪个dll加载错了,还是我的2003的dcom权限设置出了问题,以前不知道我进行了什么操作,居然联通了,可是我从新做了系统后就在也连不通了,请各位高手给小弟指点一二吧
------最佳解决方案--------------------
哪会有这么简单,vb做这个很麻烦的...
首先你服务器上的dll要要支持远程服务,这个在编译时有相关选项
二是要在服务器的组件服务中上部署这个dll,有相关向导,不同版本的服务器不一样...
三是将部署好这个的这个组件导出供客户端部署的应用代理...
四是在客户端安装上面导出的应用代理...
还有服务器上的权限设置等等等等......相当麻烦,稍有差错就不行,而且将来升级和改动都麻烦
想要做这种架构,个人建议你考虑结合.net,或者干脆用.net吧....
这样至少可以用.net写web服务,也就是几个函数没什么难的,部署简单升级简单,然后vb6做界面....
------其他解决方案--------------------
客户端提示我“加载dll错误”
我觉得是客户端系统没有注册相关的dll导致的
------其他解决方案--------------------
首先,感谢上面的老哥给我的建议。
我刚才试了一下,在2003中调试,把cdservice.exe的文职挪移下了个位置,挪到了c:根目录下,也是出现这个提示。我用filemon监控了一下,出现个“溢出”的错误。各位大侠,救救我把
------其他解决方案--------------------
是不是被防火墙禁止了?
------其他解决方案--------------------
重新注册一下DLL就可以留
------其他解决方案--------------------
谢谢各位老哥,解决了问题,我用FILEMON监控了一下程序的运行,发现了对于我来说很怪的问题,我发现将
DASERVICE.DLL文件在客户端注册一下,就行了,我都晕了,怎么这个本应该在服务器的文件在客户端注册一下就行了呢。再次感谢各位老哥的解答。
------其他解决方案--------------------
在客户机直接注册这个dll当然行,通常vb的dll都是是这样用的,这已经和服务器上的dll不相干了,你删除了服务器上的dll也没关系,谁也没说三层架构的中间层dll一定要放在服务器上,布置在客户端很正常....
------其他解决方案--------------------
把工程打个包不就都有那些dll了吗?
我用vb做了一个三层架构的程序,中间层(cdservice)和数据层(daservice)放在服务器上(2003),客户端(uiservice)在局域网的一台xp的电脑上,数据层我建立了一个activeX.DLL引用了microsoft activeX data objects 2.7 library,生成了daservice.dll,在cdservice.exe(中间层用的是activeX.exe)也加入了对daservice.dll,在服务器(2003)上测试没有任何问题,可是在xp 上远程连接,能够连接到cdservice.exe,但是不知为什么cdservice.exe不能够对daservice.dll进行操作,客户端提示我“加载dll错误”,我也不知道哪个dll加载错了,还是我的2003的dcom权限设置出了问题,以前不知道我进行了什么操作,居然联通了,可是我从新做了系统后就在也连不通了,请各位高手给小弟指点一二吧
------最佳解决方案--------------------
哪会有这么简单,vb做这个很麻烦的...
首先你服务器上的dll要要支持远程服务,这个在编译时有相关选项
二是要在服务器的组件服务中上部署这个dll,有相关向导,不同版本的服务器不一样...
三是将部署好这个的这个组件导出供客户端部署的应用代理...
四是在客户端安装上面导出的应用代理...
还有服务器上的权限设置等等等等......相当麻烦,稍有差错就不行,而且将来升级和改动都麻烦
想要做这种架构,个人建议你考虑结合.net,或者干脆用.net吧....
这样至少可以用.net写web服务,也就是几个函数没什么难的,部署简单升级简单,然后vb6做界面....
------其他解决方案--------------------
客户端提示我“加载dll错误”
我觉得是客户端系统没有注册相关的dll导致的
------其他解决方案--------------------
首先,感谢上面的老哥给我的建议。
我刚才试了一下,在2003中调试,把cdservice.exe的文职挪移下了个位置,挪到了c:根目录下,也是出现这个提示。我用filemon监控了一下,出现个“溢出”的错误。各位大侠,救救我把
------其他解决方案--------------------
是不是被防火墙禁止了?
------其他解决方案--------------------
重新注册一下DLL就可以留
------其他解决方案--------------------
谢谢各位老哥,解决了问题,我用FILEMON监控了一下程序的运行,发现了对于我来说很怪的问题,我发现将
DASERVICE.DLL文件在客户端注册一下,就行了,我都晕了,怎么这个本应该在服务器的文件在客户端注册一下就行了呢。再次感谢各位老哥的解答。
------其他解决方案--------------------
在客户机直接注册这个dll当然行,通常vb的dll都是是这样用的,这已经和服务器上的dll不相干了,你删除了服务器上的dll也没关系,谁也没说三层架构的中间层dll一定要放在服务器上,布置在客户端很正常....
------其他解决方案--------------------
把工程打个包不就都有那些dll了吗?