使用Installutil安装服务

时间:2012-04-24 08:57:56

标签: c# .net wcf installutil

我在Windows上安装了WCF服务。

现在我想在运行Windows的服务器上安装它并安装了v3.5 .net框架。

除此之外,该服务已在框架4中编写,因此它不会运行。

我的问题是我可以使用框架3.5中的“installutil”来安装服务吗?为什么?

===更新===

我有运行wcf的Windows服务。

3 个答案:

答案 0 :(得分:5)

您使用InstallUtil安装Windows服务。如果您遵循以下MSDN文章How to: Host a WCF Service in a Managed Windows Service之类的内容,则可以在Windows服务中开发您的WCF服务。

但是,如果(Windows)服务是用.NET 4编写的,并且您尝试从.net 3.5运行installutil,则会出现以下错误:

  

初始化安装时发生异常:   System.BadImageFormatException:无法加载文件或程序集   'file:/// C:\ MyService.exe'或其依赖项之一。这个集会   由比当前加载的运行时更新的运行时构建   无法载入..

要安装.NET 4(Windows)服务,您需要使用.NET 4 installutil,它将在以下位置提供:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe已安装.NET 4。

答案 1 :(得分:4)

installutil用于安装Windows服务而不是wcf服务

答案 2 :(得分:1)

如果您可以控制构建服务,只需将其更改为目标.NET 3.5框架,您就应该能够安装它。

否则,如果服务是针对.NET framework 4.0而构建的,并且服务器只安装了.NET 3.5,那么除非您在配置文件中明确覆盖它以运行,否则我认为它不会运行。 NET 3.5(我不推荐)。

顺便说一句,我总是建议人们使用WiX Toolset编写Windows服务的安装程序,而不是使用InstallUtil,因为InstallUtil是一个自定义的非标准Visual Studio工具来安装Windows服务,而Windows安装程序(MSI),Windows安装的批准标准,内置支持安装经过试验和测试的Windows服务,并为您提供更多控制,例如停止和启动服务等。