在启动Windows服务时无法find程序集文件“example.dll”

我已经开发了一个WCF服务,它使用net.tcp绑定并读写文件到文件系统。 当我启动Windows服务(在控制台中)时,即使sample.dll位于文件夹中,也会出现以下错误:

无法find程序集文件sample.dll

这个特定的WCF服务托pipe在Windows 7 64位上运行的Windows服务,我有以下问题:

我应该使用哪个帐户:

用户/networking服务/本地系统/本地服务

为什么操作系统无法加载DLL,即使它在那里?

预先感谢您的帮助!

对于dll,您应该在OnStart方法的开头添加下面的代码行。

System.Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory 

这应该允许你的服务从实际目录加载dll。

根据ServiceAccount上的MSDN文档 ,用户成员将提示输入用户名和密码。 我猜如果你使用的是用户帐户,它没有读取权限的Windows / system32,这将导致你的程序集找不到。

也许更改ServiceAccount一步到LocalService?