我有一个 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以确保它被设置为应该是的东西,但是没有成功。在任务管理器中,它显示为:
MyServiceName(32位)
服务是使用Topshelf 3.0安装的,在Windows Server 2012 R2 Standard上运行。这里发生了什么?
TopShelf
,它可能在32位下运行,并且是启动64位进程的那个。值得看看一些比任务管理器更好的进程查看器(例如Process Explorer),看看是否有你的exe被32位“任务”启动。 - Jcl