启动Windows服务时无法找到程序集文件'example.dll'

时间:2012-05-25 12:10:13

标签: c# windows wcf windows-services net.tcp

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

无法找到程序集文件sample.dll

此特定WCF服务托管在Windows 7 64位上运行的Windows服务中,我有以下问题:

我应该将哪个帐户用于我的应用程序:

用户/ NetworkService / LocalSystem / LocalService

为什么操作系统无法加载dll,即使它存在?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

根据ServiceAccount上的MSDN documentation,用户成员会提示输入用户名和密码。我想如果你使用的是用户帐户,并且它没有windows / system32的读取权限,那么就会导致你的程序集无法找到。

或许将ServiceAccount更改为LocalService的一步?