Windows服务 - 迁移到64位。步骤,以实现'64位的好处'

时间:2014-01-27 12:43:31

标签: c# visual-studio-2010 windows-services 64-bit

我有自己的旧Windows服务(.Net 3.5),它运行在32位窗口。现在我们有一个x64 Windows Server 2012,并希望迁移此服务。

我的问题是:我应该为这个Windows服务做一些特别的事情,以实现64位框架的“所有好处”吗?我的意思是 - 我应该在Visual Studio 2010(项目/解决方案属性)中构建/编译它时设置一些选项。或者是其他东西 ?或者我不需要做任何事情 - 它将自己使用64位框架,无论它是如何构建的。

2 个答案:

答案 0 :(得分:4)

这取决于构建目标:

  • 如果平台目标是x86,它将始终作为32位可执行文件运行(或根本不运行)
  • 如果平台目标是x64,它将始终作为64位可执行文件运行(或根本不运行)
  • 如果平台目标为Any CPU 且未启用“首选32位”,则会尽可能以64位运行,否则为32位
  • 如果平台目标为Any CPU “首选32位”启用,它将尽可能以32位运行,否则为64位

您可以使用Environment.Is64BitProcess检查应用程序的运行方式(或只是查看任务管理器)。

对于您的方案,Any CPU 没有“首选32位”似乎是正确的选择。

答案 1 :(得分:2)

由于这是一个3.5项目,不,你可能不必更改任何。重要的设置是Project + Properties,Build选项卡,Platform目标设置。旧版Visual Studio中的默认值为AnyCPU。它说的是什么,它可以在任何CPU上运行,因此您可以在64位操作系统上获得64位进程。如果是" x86" (或者选中了Prefer 32位复选框),然后强制它以32位模式运行。

它实际上并不重要,64位进程的唯一好处是它可以消耗更多的内存。超过32位进程限制的2 GB。服务永远不会对机器产生这种影响。