gpt4 book ai didi

c# - 为什么我能够从以 64 位模式在 IIS7 中运行的 AnyCPU .NET Web 应用程序调用 32 位 COM 库?

转载 作者:太空狗 更新时间:2023-10-30 00:56:49 24 4
gpt4 key购买 nike

在不使用 COM+ 代理服务的情况下,我很高兴能够使用来自 .NET 应用程序的 32 位 COM 互操作库中的类,该应用程序使用目标 AnyCPU 编译,在 64 位 w3wp 进程中运行。

我在 64 位 .NET 进程中成功地实例化了来自 32 位 COM 互操作库的类。

w3wp 以 64 位模式运行,并且 IIS 配置设置为不允许 32 位应用程序。除此之外,还有一个专门针对 x64 编译和注册的 .NET 程序集。

我只是想知道,这怎么可能?

有趣的是,如果代码是使用 Visual Studio 2008 编译的(针对 3.5 框架),那么它的工作效果非常好。如果使用 Visual Studio 2010 编译相同的代码,针对 3.5 框架,应用程序在尝试加载 32 位 COM 互操作库时会失败。应该如此。

最佳答案

如果它运行的话,它将以 32 位模式运行,你不能在 64 位进程中有 32 位的东西,反之亦然。一个过程完全是一个或另一个。

这与在 64 位主机上运行 32 位进程不同,显然,这是可行的。

另一种选择是,第三方的东西实际上提供了 64 位引用,而您关于它运行 32 位的结论是不正确的。

关于c# - 为什么我能够从以 64 位模式在 IIS7 中运行的 AnyCPU .NET Web 应用程序调用 32 位 COM 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com