【问题标题】:32 and 64 bit ASP.NET deployments32 位和 64 位 ASP.NET 部署
【发布时间】:2010-12-31 21:07:23
【问题描述】:

我开发的 ASP.NET/C# 代码本身是否与 32/64 位无关,因为它被编译为某种中间语言?我问的原因是我在 x64 笔记本电脑上编译我的 ASP.NET 应用程序,然后部署在 x32 服务器上。没有问题。此外,我看不到在 VS2010 中选择 32 位和 64 位版本的选项。

【问题讨论】:

    标签: c# asp.net msbuild


    【解决方案1】:

    你可以把你的代码编译成

    • AnyCPU - 在 32 位运行时以 32 位执行,在 64 位运行时以 64 位执行
    • x86 - 强制以 32 位执行
    • x64 - 强制在 64 位中执行(不适用于 32 位操作系统)
    • (IA64 - Itanumim)

    如果您为 AnyCPU 编译,您的状态就很好,而且通常情况下,您将使用 AnyCPU 平台目标。 (构建 -> Visual Studio 中的配置管理器)

    在编译 .Net 代码时,它会被编译成中间语言代码 (MSIL),然后由 .Net 框架/运行时在运行时将其编译为本机代码。

    【讨论】:

    • 我认为它的工作方式是,如果您选择更具体的 CPU,那么您将获得一些 CPU 特定的优化。要么这样,要么这样你就不会在 P/Invoking 时崩溃和烧毁
    • 我认为这主要是由于 p/invoke。但是有理由希望在 64 位系统上运行 32 位。具有大量内存使用的特别高负载应用程序,但低于需要 64 位内存寻址的障碍。
    【解决方案2】:

    有些第三方库只能作为 x86 运行。

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

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2011-07-12
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多