c# - 为什么我的 64 位服务以 32 位运行?

标签 c# windows service 64-bit corflags

我有一个 Windows 服务遇到了这个问题。

  • 在 Visual Studio 中,我将其平台目标设置为 64 位
  • 我已经运行 CorFlags 来验证它是否设置正确,我得到了这个:
Version   : v4.0.30319
CLR Header: 2.5  
PE        : PE32+
CorFlags  : 0x1    
ILONLY    : 1       
32BITREQ  : 0        
32BITPREF : 0        
Signed    : 0

我什至尝试使用 32BITREQ-32BITPREF- 标志运行 Corflags 以确保它被设置为它应该是什么但没有骰子。在 taskManager 中它显示为:

我的服务名称(32 位)

服务随 Topshelf 3.0 一起安装,并在 Windows Server 2012 R2 Standard 上运行。这是怎么回事?

最佳答案

当该服务的以前 版本是 32 位时,我遇到了这个问题。我知道当前安装的不是(已检查 CORFLAGS),但与该服务相关的进程无论如何都被创建为 32 位,我一直无法弄清楚为什么。

重启后问题消失。我想知道服务控制管理器是否“记住”每个服务的位数,作为启动优化(或其他)。

关于c# - 为什么我的 64 位服务以 32 位运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32080610/

相关文章:

c# - 使用枚举值表示两个枚举值

grails - Grails:服务与Groovy类

c# - ASPNetCore - 通过 REST 上传文件

c# - 为枚举提供本地化的最佳方式是什么?

C++ 更改打印队列所有者

c# - 我怎么知道我的应用程序窗口是前景窗口

python - 如何让 pyflakes 在 Windows 上运行?

service - 如何在 Docker 后台启动 railo 服务

c# - 由于 Service 的 'FaultedState',WCF.ServiceChannel 无法通信

c# - 映射到具有内部构造函数的自定义类型