2

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

找不到程序集文件 sample.dll

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

我应该为我的应用程序使用哪个帐户:

用户/网络服务/本地系统/本地服务

为什么即使它存在操作系统也不能加载dll?

预先感谢您的帮助!

4

2 回答 2

3

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

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

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

于 2012-08-15T20:23:28.460 回答
0

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

也许将 ServiceAccount 更改为 LocalService?

于 2012-05-28T03:10:12.140 回答