【发布时间】:2015-06-03 18:40:26
【问题描述】:
注意:我已经对这个问题进行了详尽的研究,有很多假设的解决方案,但没有一个对我真正有用。
在客户端计算机上成功安装 Windows 服务后,我注意到它没有按预期自动启动。当我尝试手动启动它时,出现上述错误。我查看了事件查看器日志,这是那里记录的错误:“服务无法启动。System.IO.FileNotFoundException:无法加载文件或程序集“assemblyname.dll”或其依赖项之一。指定的模块找不到”
原来我的.dll,虽然我可以在安装文件夹中看到它(我做了并排),但系统无法连接到它。有人建议确保应用程序文件名和配置文件名匹配,我的已经这样做了,并且我的服务设置为在本地系统帐户上运行。注意:在开发盒上一切正常,客户端机器具有运行服务所必需的 4.5 .NET 框架。
问题:我该如何纠正这个问题?如何确保客户端计算机上的系统能够看到服务使用的 .dll 文件?
感谢您的帮助。如果需要进一步澄清,请告诉我。
谢谢
【问题讨论】:
-
可执行二进制文件是否与 dll 位于同一文件夹中?我假设是的,但我想验证一下。
-
@DavidW 该服务是在 64 位系统上开发的,但编译为 32 位
-
@CDC 一切都在同一个文件夹中。
-
在这种情况下,ProcMon 是你的朋友。启动它,启动服务,ProcMon 应该准确地告诉你哪个程序集是 MIA。
-
事件查看器的日志已经指定了丢失的.dll,我的问题是如何确保客户端系统可以看到.dll。它在安装文件夹中,但系统说它丢失了。
标签: c# .net wcf windows-services setup-project