2

我正在尝试使用 IIS (Windows Server 2012 x64) 项目,该项目有一个 ASP.NET Web 应用程序 x64,其中一个项目是 C++ 的 32 位和 64 位。我试图替换 C++ 项目 DLL 的 32 位和 64 位。我也尝试了很多配置:在 Visual Studio 中打开和关闭“首选 32 位”,将 AnyCPU(适用于所有项目)更改为 64 位,在 IIS 中打开和关闭“启用 32 位应用程序”。问题是 IIS 看不到 C++ 项目 DLL(应该可以看到,它在同一个文件夹中)或者由于格式不正确而无法加载。我想在最终的 32 位 C++ 项目中以 64 位运行整个解决方案,因此将所有内容更改为 32 位将不是正确的解决方案。有没有办法把所有东西都放在 IIS 上来运行应用程序?

4

1 回答 1

1

您必须将平台对齐到相同的位数。也就是说,您要么:

  1. 将 Web 应用程序和 C++ 引用项目编译为 32 位,并将IIS 应用程序池的启用 32 位应用程序设置为。True
  2. 将 Web 应用程序和 C++ 引用的项目编译为 64 位,并将IIS 应用程序池的启用 32 位应用程序设置为。False

如果 C++ 项目对没有 64 位版本的 32 位 DLL 有其他依赖关系,那将是一个问题。在这种情况下,您别无选择,只能将所有内容与 32 位对齐。

于 2013-02-07T10:02:22.157 回答