WCF服务作为Windows服务的困境(Windows 7)

时间:2010-10-25 16:32:52

标签: c# wcf windows-services installutil

我按照here步骤使我现有的WCF服务(已经作为控制台应用程序正常工作)也是Windows服务,在我的Windows 7机器上也是我的开发机器。

无论我尝试了什么,在使用installutil的最后一步时,我在命令行中收到以下消息:

  

初始化安装时发生异常:
  System.BadImageFormatException:无法加载文件或程序集'file:/// [path here]'或其依赖项之一。
  试图加载格式不正确的程序..

我的控制台应用程序主类继承自ServiceBase并实现OnStartOnEnd方法。

我添加了继承自ProjectInstaller标记System.Configuration.Install.Installer属性的[RunInstaller(true)]类以及它们在构造函数中提供的代码。

上面的文章中没有提到我已经尝试过的内容?

  1. 以管理员身份运行命令行
  2. 导航到EXE文件所在的目录并运行     从那里安装
  3. 使用
  4. 为EXE文件和所有DLL提供强密钥

    此外,即使使用/LogFile=myLog.txt指定日志文件,我也不会收到任何日志文件。

    欢迎任何想法,谢谢。

2 个答案:

答案 0 :(得分:6)

闻起来像是一个32/64位的问题。

你的机器是64位Windows 7吗?你的服务是否以某种方式引用32位的东西,比如旧的COM组件或什么东西?

您可能需要在Visual Studio中使用x86平台编译您的东西才能使其正常工作......

答案 1 :(得分:3)

BadImageFormat异常通常发生在.NET框架的旧版本(没有4.0的机器上的4.0程序集)中加载程序集时。由于您在同一台机器上进行部署,我的猜测是您没有使用正确版本的installutil。

确保使用位于此处的installutil:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319