C# - InstallUtil 32位安装服务但在启动时抛出错误

时间:2014-05-20 13:38:58

标签: c# windows-services visual-studio-2013 64-bit

我已经开始使用Windows服务一段时间了,我终于完成了它。在我的本地计算机(Win7,64bit,.NET 4.5,VS 2013)上,我已经能够成功安装和运行从网站获取信息并将其放在SQL表中的服务。

现在我想在网络上的另一台计算机上安装此服务,它必须是这台计算机,因为我被告知这样做。

另一台计算机正在运行64位Windows Server 2003 R2。

我尝试安装服务时出现问题。我使用普通的旧命令提示符,因为我没有VS命令提示符。代码是:

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe C:\MyService.exe

这样做会给我一个错误“初始化安装时发生异常:
System.BadImageFormatException:无法加载文件或程序集“ filepath ”或其依赖项之一。试图加载格式不正确的程序。“

所以我尝试这样做:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>InstallUtil.exe C:\MyService.exe

使用这个32位的InstallUtil.exe似乎工作,因为该服务将成功安装,它出现在我的services.msc列表中。当我尝试启动该服务时,我收到此错误消息:“无法在本地计算机上启动该服务。错误193:0xc1”

我对此感到非常沮丧/困惑,所以任何有用的帮助都会非常感激!!谢谢你的阅读。

< --------------------------------------------- EDIT ---------------------------------------->

我已将配置更改为Release和Any CPU,通过网络文件夹将其复制并粘贴到服务器并再次安装。仍然得到同样的错误。

< --------------------------------------------- EDIT ---------------------------------------->

如果有人在想,或者我遇到同样的问题,答案就在我的帖子中。

1 个答案:

答案 0 :(得分:1)

我已经明白了。在我使用Windows Server 2003的地方,它倾向于喜欢.NET 4 Framework,并且在Visual Studio 2013中开发服务的地方默认使用.NET 4.5 Framework。我所要做的就是进行一些编辑以使服务更有效率,将VS项目中的目标更改为.NET 4 Framework并在服务器上重建/重新安装。

它现在已经开始没有问题,并且正在按预期与SQL服务器通信。非常感谢 Hans Passant 指出我正确的方向,我很可能仍在努力解决这个问题。谢谢!!