我开发了一个WCF服务,该服务使用 net.tcp 绑定和读取和写入文件到文件系统。当我启动Windows服务(在控制台中)时,即使 sample.dll 位于文件夹中,我也会收到以下错误:
无法找到程序集文件sample.dll
此特定WCF服务托管在Windows 7 64位上运行的Windows服务中,我有以下问题:
我应该将哪个帐户用于我的应用程序:
用户/ NetworkService / LocalSystem / LocalService
为什么操作系统无法加载dll,即使它存在?
提前感谢您的帮助!
答案 0 :(得分:3)
对于dll,您应该在OnStart方法的开头添加以下代码行。
System.Environment.CurrentDirectory = System.AppDomain.CurrentDomain.BaseDirectory
这应该允许您的服务从实际目录加载dll。
答案 1 :(得分:0)
根据ServiceAccount上的MSDN documentation,用户成员会提示输入用户名和密码。我想如果你使用的是用户帐户,并且它没有windows / system32的读取权限,那么就会导致你的程序集无法找到。
或许将ServiceAccount更改为LocalService的一步?