我在Windows上安装了WCF服务。
现在我想在运行Windows的服务器上安装它并安装了v3.5 .net框架。
除此之外,该服务已在框架4中编写,因此它不会运行。
我的问题是我可以使用框架3.5中的“installutil”来安装服务吗?为什么?
===更新===
我有运行wcf的Windows服务。
答案 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服务,并为您提供更多控制,例如停止和启动服务等。