32位和64位ASP.NET部署

4

我开发的ASP.NET/C#代码本质上是否是32/64位不可知的,因为它被编译成某种中间语言?我之所以问这个问题是因为我在x64笔记本电脑上编译我的ASP.NET应用程序,然后在x32服务器上部署。没有出现任何问题。此外,在VS2010中,我看不到选择32位和64位构建的选项。

2个回答

4
你可以将代码编译为以下平台:
  • AnyCPU - 在32位运行时上以32位执行,在64位运行时上以64位执行
  • x86 - 强制以32位执行
  • x64 - 强制以64位执行(无法在32位操作系统上运行)
  • (IA64 - Itanumim)
如果你编译为 AnyCPU,那么你就很安全了,而且大多数情况下,你会使用 AnyCPU 平台目标。(在 Visual Studio 中,选择“生成”->“配置管理器”)
当编译 .Net 代码时,它会被编译成中间语言代码(MSIL),然后由 .Net 框架/运行时在运行时编译成本地代码。

我认为它的工作方式是,如果您选择更具体的CPU,则会获得一些特定于CPU的优化。要么如此,要么这样做是为了避免在P/Invoking时崩溃和烧毁。 - Earlz
我认为这主要是由于p/invoke。但是有理由希望在64位系统上运行32位。特别是高负载应用程序,具有大量内存使用,但低于希望64位内存寻址的界限。 - Mikael Svenson

0

有一些第三方库只能以x86运行。

最好的方法是让您的本地环境(本地IIS)尽可能地与目标Web服务器的设置匹配。因此,如果您的目标IIS仅以32位运行,请将应用程序池的“强制32位”属性设置为true。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接