【问题标题】:64-bit solution ASP.NET with C# and one project 32-bit in C++带有 C# 的 64 位解决方案 ASP.NET 和一个 C++ 中的 32 位项目
【发布时间】:2013-01-22 17:38:00
【问题描述】:

我正在尝试安装 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 上来运行应用程序?

【问题讨论】:

    标签: c# c++ asp.net 64-bit 32-bit


    【解决方案1】:

    您必须将平台与相同的bitness 对齐。也就是说,你要么:

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

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

    【讨论】:

    • 是的,那是一回事,另一回事是应用程序的“发布”版本。调试版本正在寻找 Visual C++ Redistributables DLL 的调试版本。
    • 还需要适当的(32 位/64 位)版本的 Redistributables。
    • 再次:需要在 C++ 项目中删除编译器或链接器指令 WIN32。
    • 最后一件事:Visual Studio IIS Express 仅在本地运行 32 位应用程序。
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2012-07-15
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多