【问题标题】:Forcing a .Net Windows service to run as 32-bit on a 64-bit machine强制 .Net Windows 服务在 64 位机器上以 32 位运行
【发布时间】:2019-02-16 05:11:20
【问题描述】:

我得到了一个 Windows 服务,它引用了一个仅在 32 位上运行的 COM 组件。 我的机器是 x64,所以服务尝试启动,无法创建 COM 组件,然后死了。

我没有源代码,只有 .exe 文件。有什么方法可以强制服务在 win64 机器上以 32 位模式启动?

【问题讨论】:

    标签: .net configuration 64-bit


    【解决方案1】:

    也许 .NET 工具 corflags 会有所帮助:

    corflags /32bit+ myservice.exe

    【讨论】:

    • +1 是最好的答案,但选项排在最后:用法:Corflags.exe 程序集 [选项]
    • 我收到消息corflags : error CF001 : Could not open file for writing 时遇到问题,解决方案是添加/force
    • 同样的问题也适用于构建为 .dll 并通过 WcfSvcHost 在 VS 中调试的服务。在这种情况下,您可以在 WcfSvcHost 本身上切换标志。 see article
    【解决方案2】:

    corflags.exe 附带 Windows SDK,而不是 .NET。

    corflags.exe 只需针对目标服务 exe 运行一次。然后服务将在此后以 32 位模式运行。

    注意所需的参数是 /32bitreq+ 或 /32bitpref+ 。

    corflags.exe /32bitreq+ myservice.exe

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2011-04-09
      • 2012-07-04
      • 2010-10-08
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多