3

我们有一个依赖于许多第 3 方产品(例如 Crystal、Topaz)的 MVC 应用程序。Topaz 签名设备只有 32 位 .dll 可用。所以我假设我需要在 IIS 7 上的 32 位应用程序池中构建和部署应用程序。

如果这个假设是正确的,那么我是否需要使用 VS2008 编译器设置为“x86”来构建 MVC 应用程序(现在我使用的是“任何 CPU”?

此外,所有引用的程序集是否也需要是 32 位的?如果是这样,我如何将 32 位 MVC 文件放到 x64 Server 2008 上?

最后,我如何使 inetpub/ 目录对 x86 友好,或者这是否会因其他原因而神奇地发生?

4

3 回答 3

1

如果您的 MVC 应用程序运行为 32 位,这是否重要?或者您是否有令人信服的理由尝试使用 64 位?

如果您可以使用 32 位,请将所有程序集编译为 x86。在 x64 服务器 2008 上配置 IIS 时,请确保更新应用程序池上的“高级设置” - 将“启用 32 位应用程序”设置为 true。

帕特里克

于 2010-01-28T16:18:02.570 回答
1

如果这个假设是正确的,那么我是否需要使用 VS2008 编译器设置为“x86”来构建 MVC 应用程序(现在我使用的是“任何 CPU”?

您可以将其设置为任何 CPU,它将在 32 位或 64 位上运行,具体取决于您的应用程序池设置,并且只要您的其他依赖 dll 也使用“任何 CPU”编译

此外,所有引用的程序集是否也需要是 32 位的?如果是这样,我如何将 32 位 MVC 文件放到 x64 Server 2008 上?

如果您使用的是非托管代码(或引用程序集),则需要获取该程序集的特定 32 位和 64 位版本。如果您有 32 位程序集并且在应用程序池中启用 32 位应用程序,它们将在魔兽世界64模式

另一个参考:http: //blogs.msdn.com/gauravseth/archive/2006/03/07/545104.aspx

如果您有 x64 版本,它们将作为 64 位本机运行

Topaz 签名设备只有 32 位 .dll 可用。所以我假设我需要在 IIS 7 上的 32 位应用程序池中构建和部署应用程序。

你是如何验证的?你用过 Corflags.exe 吗?你可以在这里了解更多。不管你的 PE 头(PE32 或 PE32+)如果你的 32BIT 设置为 0,你可以在 64 位应用程序池上运行它。即使它设置为 1 并且没有签名,你也可以将它设置为 0(但可能不值得冒险)并在 64 位应用程序池上运行它

于 2010-01-28T16:35:22.493 回答
0

如果这个假设是正确的,那么我是否需要使用 VS2008 编译器设置为“x86”来构建 MVC 应用程序(现在我使用的是“任何 CPU”?

是的,完全正确。

此外,所有引用的程序集是否也需要是 32 位的?如果是这样,我如何将 32 位 MVC 文件放到 x64 Server 2008 上?

不需要,如果这些程序集是作为任何 CPU 构建的,那么只要您的入口程序集是 32 位,.Net 框架就会将其解析为 32 位。

最后,我如何使 inetpub/ 目录对 x86 友好,或者这是否会因其他原因而神奇地发生?

它只是神奇地发生。

于 2010-01-28T16:21:50.347 回答