将应用从32位移动到64位

将应用从32位移动到64位

问题描述:

我们有一个用C#编写的针对AnyCPU的Windows服务应用程序。它运行在Win2003(32位)服务器上。最近它开始耗尽内存。将应用从32位移动到64位

将此服务重新部署到Win2003(64位)盒中涉及什么。我是否需要重新编译它,如果我不重新编译它,应用程序是否会获得更多内存?

如果将exe设置为AnyCPU,64位CLR将默认加载到64位机器上,这并没有什么特别之处。你只需要确保你是真正的AnyCPU就绪(没有不安全或安全的32位指针数学假设等)。如果您运行的是没有PInvokes的所有托管代码,则应该保持良好状态。

+4

真正的问题是:你是否内存不足,因为该应用程序有点缺陷,或仅仅因为你真的需要那么多的内存?如果你泄漏,移动到64位只是延长了不可避免的。 – nitzmahone 2009-11-19 22:58:17

+0

这是一个字母打印应用程序。每个模板都是一个将数据xml转换为wordml文件的XSL。大小约为每个模板300k。最近模板的数量几乎增加了一倍。我们会更好地将他们留在记忆中,但我需要一个排序术语解决方案 – mfeingold 2009-11-19 23:15:06