【发布时间】:2012-05-04 21:41:39
【问题描述】:
我要在 Windows 上安装 WCF 服务。
现在我想将它安装在运行 windows 的服务器上,并且已经安装了 v3.5 .net 框架。
该服务已经在框架 4 中编写,因此它不会运行。
我的问题是我可以使用框架 3.5 中的“installutil”来安装服务吗?为什么?
=== 更新===
我有在里面运行 wcf 的 windows 服务。
【问题讨论】:
标签: c# .net wcf installutil
我要在 Windows 上安装 WCF 服务。
现在我想将它安装在运行 windows 的服务器上,并且已经安装了 v3.5 .net 框架。
该服务已经在框架 4 中编写,因此它不会运行。
我的问题是我可以使用框架 3.5 中的“installutil”来安装服务吗?为什么?
=== 更新===
我有在里面运行 wcf 的 windows 服务。
【问题讨论】:
标签: c# .net wcf installutil
installutil 用于安装 windows 服务而不是 wcf 服务
【讨论】:
如果您可以控制构建服务,只需将其更改为面向 .NET 3.5 框架,您就应该能够安装它。
否则,如果该服务是针对 .NET Framework 4.0 构建的,并且服务器只安装了 .NET 3.5,我认为它不会运行,除非您在配置文件中明确覆盖它以在 .NET 3.5 下运行(我不推荐)。
顺便说一句,我总是建议人们使用WiX Toolset 为 Windows 服务编写安装程序,而不是使用 InstallUtil,因为 InstallUtil 是一个自定义的、非标准的 Visual Studio 工具来安装 Windows 服务,而 Windows Installer ( MSI),Windows 安装的批准标准内置了对安装经过试验和测试的 Windows 服务的支持,并为您提供更多控制,例如停止和启动服务等。
【讨论】:
您使用 InstallUtil 安装 Windows 服务。如果您遵循以下 MSDN 文章 How to: Host a WCF Service in a Managed Windows Service 之类的内容,您的 WCF 服务可能已经在 Windows 服务中开发。
但是,如果 (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 已安装。
【讨论】: