1

我正在使用 .NET 平台构建 Windows 服务。该服务旨在在多个客户端上运行,每个客户端的每个实例。每个服务实例都将在单独的数据库上工作。所有服务实例都将位于单个服务器上。

最近,客户(托管运行服务的服务器)询问,当他在 Windows 任务管理器中查看服务时,他无法分辨哪个服务可执行文件是针对哪个客户的。因此,他取消了服务的注册,制作了服务 exe 的多个副本,然后将它们重命名,就像在文件名中附加客户名称一样。然后他注册了这项服务。但是当他尝试运行该服务时,他开始得到

无法启动服务。System.IO.FileNotFoundException:无法加载文件或程序集“AService,版本=2013.0.0.1004,文化=中性,PublicKeyToken=4a70863d203e0028”或其依赖项之一。该系统找不到指定的文件。

我花了几天时间寻找解决方案,但找不到。有人可以帮我吗?.NET 是否允许像这样重命名程序集?

4

2 回答 2

0

这个问题和我问的完全不同。我的错。该服务根据客户动态加载程序集。动态加载逻辑取自Loading Assemblies from Anywhere into a New AppDomain。显然, FileNotFoundException 是因为这个而发生的。当服务 exe 文件未重命名时,动态加载工作。

于 2013-08-23T14:35:43.513 回答
0

尝试
在未找到调用名称时在运行时重命名组装,
适用于所有引用!
http://support.microsoft.com/kb/837908/en-us

方法 3

于 2013-08-22T13:07:33.170 回答