首页 新闻 会员 周边

反射、windows服务问题

0
悬赏园豆:40 [已解决问题] 解决于 2010-10-20 10:18

我在windows服务里用Assembly.LoadFrom动态加载我上传的dll文件,怎么老是提示“未能加载文件或程序集“HelloWord, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件”。我把相同的代码复制到aspx页面中,就没有错误,高手指点啊!在线等

萧鼎的主页 萧鼎 | 初学一级 | 园豆:106
提问于:2010-10-19 14:09
< >
分享
最佳答案
0

你将 DLL 添加到你服务的项目里面, 建个文件夹。

收获园豆:20
HUHU慈悲 | 大侠五级 |园豆:9973 | 2010-10-19 16:34
我的项目是这样的,实现一个remoting,服务器为windows服务里,远程是一个网站。在网站上提供一个按钮,点击上传所选的dll文件到网站的dll文件夹里,并通过反射在windows服务里调用该dll,结果再返回给网站。现在在windows服务调用dll时遇到上面的错误,将代码复制到网页里面就没有错误。
萧鼎 | 园豆:106 (初学一级) | 2010-10-19 16:47
其他回答(2)
0

可能是加载的dll的路径不对,能把Assembly.LoadFrom那段代码贴出来看看不?

你可以在Assembly.LoadFrom中换成HelloWord那个dll的绝对路径试试。

收获园豆:15
wang_yb | 园豆:4891 (老鸟四级) | 2010-10-19 15:38
我用的就是绝对路径,我将windows服务里面的反射代码拿到一张网页中,代码就没有错误了?
支持(0) 反对(0) 萧鼎 | 园豆:106 (初学一级) | 2010-10-19 16:33
@萧鼎: 有可能是权限的原因,上传dll的那个文件夹对于window服务有读写的权限不?
支持(0) 反对(0) wang_yb | 园豆:4891 (老鸟四级) | 2010-10-19 17:22
0

应该是权限问题

收获园豆:5
eaglet | 园豆:17139 (专家六级) | 2010-10-20 06:53
我给予文件夹everyone完全控制的权限,还是出现这样的错误啊,恶心死了,都找不到原因
支持(0) 反对(0) 萧鼎 | 园豆:106 (初学一级) | 2010-10-20 08:54
解决了,是我的上传路径的问题,我把dll文件上传到web项目的dll文件夹里面,loadfrom需要与dll文件有依赖关系,所以放到我的windows服务生成的exe文件的那个文件夹里面就没有错误了。
支持(0) 反对(0) 萧鼎 | 园豆:106 (初学一级) | 2010-10-20 10:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册